2010-08-17 100 views
1

我使用Beautifulsoup分析一個網站蟒蛇beautifulsoup加入

request = urllib2.Request(url) 
    response = urllib2.urlopen(request) 
    soup = BeautifulSoup.BeautifulSoup(response) 

我使用它遍歷表額外的結束標記。我遇到的問題是BS爲表格添加了一個額外的結束標記到不存在的html中,我使用print soup.prettify()進行了驗證。所以,其中一個td標籤已經離開表格,我無法選擇它。

+1

你可以發佈不工作的HTML代碼的基本結構嗎? – 2010-08-17 17:14:18

+0

也會喜歡這個答案。在我的情況下,似乎BS是在頁面的源代碼中添加* not *的標籤 – 2012-04-08 23:12:59

回答

1

如何直接搜索每個標籤而不是嘗試遍歷表格?

for td in soup.find("td"): 
     ... 

當它不在代碼中時,它並不尋常地找到嵌入在表內的tbody標籤。您可以編寫代碼或直接跳到tr或td標籤。

+0

這是一個很好的想法,我嘗試過。當我運行上面的代碼時,它將返回整個表格,而不是每個單獨的td。我認爲BS是打破這個頁面可怕的HTML ...機器人確定該怎麼辦雖然 – imns 2010-08-17 17:39:51

+0

2東西,檢查您使用的版本。如果您使用3.1切換回3.0(http://www.crummy.com/software/BeautifulSoup/3.1-problems.html),請嘗試lxml,恕我直言,它是一個比Soup更好的通用解析器。 – ebt 2010-08-17 21:40:04