Ich versuche gerade, Daten von einer Website zu scrappen, aber mit dem darunter liegenden Code würde aus irgendeinem Grund ein leeres Array "[]" zurückgegeben. Ich kann die Gründe dafür nicht verstehen. Wenn ich das erzeugte HTML überprüfe, scheint es eine Menge von \ t \ r \ n zu geben. Ich bin mir nicht sicher, was das Problem mit meinem Code zu sein scheint.BeautifulSoup Leeres Array zurückgeben
url = "http://www.hkex.com.hk/eng/csm/price_movement_result.htm?location=priceMoveSearch&PageNo=1&SearchMethod=2&mkt=hk&LangCode=en&StockType=ALL&Ranking=ByMC&x=51&y=6"
html = requests.get(url)
soup = BeautifulSoup(html.text,'html.parser')
rows = soup.find_all('tr')
print rows
Ich habe versucht, nicht „.text“ zu analysieren und auch ‚lxml‘ statt ‚html.parser‘, aber mit dem gleichen Ergebnis endete.
BEARBEITEN: Die Problemumgehung gefunden, Selen verwendet, um die Seite zu öffnen und die Quelle stattdessen zu greifen.
url = "http://www.hkex.com.hk/eng/csm/price_movement_result.htm?location=priceMoveSearch&PageNo=1&SearchMethod=2&mkt=hk&LangCode=en&StockType=ALL&Ranking=ByMC&x=51&y=6"
driver = webdriver.Firefox()
driver.get(url)
f = driver.page_source
soup = BeautifulSoup(f,'html.parser')
rows = soup.find_all('tr')
zu verwenden, wenn ich Selen-Treiber verwenden wäre, würde ich die Website kratzen kann? Wenn nicht, was wäre die bestmögliche Lösung. EDIT: gerade versucht es funktioniert es dank – kimpster
Nach dieser Diskussion können Sie ja. Habe es nie selbst ausprobiert. http://stackoverflow.com/questions/14529849/python-scraping-javascript-using-selenium-and-beautiful-soup – DyZ