2012-01-17 32 views
1

我曾經有一個python腳本,使用Mechanize和BeautifulSoup正確地從下表中抽取數據。但是,該網站最近將表格的編碼更改爲了javascript,並且我無法處理它,因爲表格中有多個頁面。在多個頁面的javascript表上使用Python BeautifulSoup

http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2011&month=0&season1=&ind=0&team=25&players=0

例如,在上面的鏈接,我怎麼能抓住從第1頁和第2頁表的兩個數據? FWIW,網址不變。

回答

4

最好的辦法是運行一個無頭的瀏覽器如phantomjs其理解所有錯綜複雜的JavaScript,DOM等,但你必須用Javascript編寫你的代碼,好處是你可以做任何你想做的事情,使用BeautifulSoup解析HTML很酷但有點長期頭痛。所以爲什麼刮時,你可以訪問DOM

0

機械化不處理JavaScript。

您可以觀察點擊按鈕時的請求(使用Firefox中的Firebug或Chrome中的開發人員工具)。比嘗試對頁面後面運行的JavaScript進行逆向工程,並嘗試使用Python代碼做類似的事情,請參閱Spidermonkey

嘗試使用Selenium

硒是一種泛函測試框架,它能夠自動在瀏覽器中執行某些操作這反過來又測試代碼的基本動作

+0

謝謝:)我會檢查出來 – 2012-01-17 18:09:13

相關問題