私は現在、ウェブサイトからデータをスクラップしようとしていますが、その下のコードを使用すると何らかの理由で空の配列「[]」が返されます。私はそれの背後にある推論を把握していないようです。生成されたhtmlをチェックすると\ t \ r \ nがたくさんあるようです。問題が自分のコードでどうなっているかわかりません。BeautifulSoup空の配列を返す
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
私はまた、非「.textセクション」、代わりに 『html.parser』の 『lxmlのを』解析しようとしましたが、同じ結果になってしまっています。
EDIT:回避策が見つかりました。セレンを使用してページを開き、代わりにソースを取得してください。
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')
を使用する必要はありませんか?最良の解決策は何ではないでしょうか。編集:ちょうどそれがありがとう作品を試して – kimpster
この議論によると、はいできます。自分で試したことはありません。 http://stackoverflow.com/questions/14529849/python-scraping-javascript-using-selenium-and-beautiful-soup – DyZ