2014-12-20 85 views
0

我目前正在運行此代碼:BeautifulSoup錯誤

import urllib 
from bs4 import BeautifulSoup 

htmltext = urllib.urlopen("http://www.fifacoin.com/") 
html = htmltext.read() 

soup = BeautifulSoup(html) 
for item in soup.find_all('tr', {'data-price': True}): 
    print(item['data-price']) 

當我運行這段代碼我沒有得到任何輸出,當我知道有HTML標籤,在他們這些搜索參數上特定的網站。我可能在這裏犯了一個明顯的錯誤,我是Python和BeautifulSoup的新手。

+0

http://stackoverflow.com/questions/8049520/web-scraping-javascript-page-with-python嘗試在這裏找到更多解決方案。 – zhujs

回答

2

問題是價格表中的表格是通過JavaScript加載的,urllib並沒有包含任何javascript引擎,據我所知。所以在普通瀏覽器中執行的那個頁面中的所有JavaScript都不會在由urllib獲取的頁面中執行。 這樣做的唯一方法是模擬一個真正的瀏覽器。想到的解決方案是PhantomJS和Node.js.

我最近做了一個類似的事情與nodejs(雖然我也是一個Python粉絲),目前感到驚訝。我做了一點不同,但這個網頁似乎很好地解釋你想要做什麼:http://liamkaufman.com/blog/2012/03/08/scraping-web-pages-with-jquery-nodejs-and-jsdom/