2016-01-13 67 views
0

要真正處理這些數據,我希望能夠在Python中創建一個嵌套的湯。Python中的嵌套湯Beautifulsoup

因此,例如,在.net中我會做這樣的事情:

For Each node As HtmlNode In document.DocumentNode.SelectNodes("//tr[@class='ClassName']") 
For Each SecondNode As HtmlNode In node.SelectNodes(".//span[@class='SecondClassName']") 

所以我可以通過我已經發現BeautifulSoup各部分元素分析。

我想是這樣的:

soup = BeautifulSoup(WebDriver.page_source, "html5lib") 
for EachSection in soup.find_all("tr", {"class" : "ClassName"}): 
soup2 = BeautifulSoup(EachSection, "html5lib") 
print soup2 

第一部分作品。我可以將打印出的每段代碼轉儲出來,或者使用get_text()獲取內容,但第二部分導致問題。

它拋出:

TypeError: 'NoneType' object is not callable 

我知道我可以直接發送第一湯朝跨度/ SecondClassName但它的閱讀換行符,其中淨不肯,我可能不得不使用一些容易出錯解析來獲取我需要的一切。

有沒有辦法做到這一點?

/編輯:

我一直在變化玩弄於:

if EachSection.parent.name == 'div': 
    print EachSection["tr"] 

甚至不知道如果我找對了地方在這裏還沒有得到它的工作還沒有。這看起來似乎是一種乾淨利落的方式。

+0

爲什麼這個正確處理這些數據? – Blender

回答

0

我不知道爲什麼我在我頭腦中複雜化了這個。不需要爲該部分的循環創建另一個湯。

這工作得很好:

for EachSection2 in EachSection("span", {"class" : "SecondClassName"}):