2017-05-23 1 views
0

Ich versuche folgendes:Geeignete Javascript-Parser verwendet werden soll mit urlopen

from urllib2 import urlopen 
from BeautifulSoup import BeautifulSoup 
url = 'http://search.wcad.org/Property-Detail?PropertyQuickRefID=R000017&PartyQuickRefID=O0532572' 

soup = BeautifulSoup(urlopen(url).read()) 
print soup 

Die Aussage Drucke sind sehr komplizierte Textstruktur und es schwierig ist, Variablen zu extrahieren. Was ist der bessere Weg, Variablen wie Legal Description

Antwort

2

Sie brauchen nicht zu extrahieren JavaScript zu analysieren den „Legal Beschreibung“ Wert zu erhalten - Sie HTML und BeautifulSoup HTML-Parser analysieren müssen, kann den Job erledigen. Suchen Sie das td Element „von‚Legal Beschreibung‘Text“ und erhalten dann das nächste td Element:

soup.find("td", text="Legal Description").find_next_sibling("td").get_text() 

Hinweis: Sie verwenden BeautifulSoup Version 3 - es ist sehr veraltet und nicht gepflegt - Schalter auf der 4. Version:

pip install beautifulsoup4 

und ändern Sie Ihren Import aus:

from BeautifulSoup import BeautifulSoup 

zu:

from bs4 import BeautifulSoup 
1

Obwohl Sie dies mit urllib2 tun kann, würde ich empfehlen, requests zu verwenden.
Die id ist für jedes Feld eindeutig, so dass Sie den Text direkt erhalten können, indem Sie das Element mit id finden.

import requests 
from bs4 import BeautifulSoup 

url = "http://search.wcad.org/Property-Detail?PropertyQuickRefID=R000017&PartyQuickRefID=O0532572" 

html = requests.get(url) 
soup = BeautifulSoup(html.text, "lxml") 
text = soup.find("td", id="dnn_ctr1460_View_tdGILegalDescription").get_text() 
print(text) 

HINWEIS: Ich Beautifulsoup Version 4 verwendet habe es diesen Befehl installieren verwenden - pip install bs4.

Verwandte Themen