我想了解一個python代碼。它有一個語句當沒有參數時,findAll會做什麼?
soup.findAll()
其中soup
是Beautifulsoup object
我印刷的類型和結果的長度是
類型:<class 'bs4.element.ResultSet'>
長度= 1359
什麼是findAll匹配在這裏?
我想了解一個python代碼。它有一個語句當沒有參數時,findAll會做什麼?
soup.findAll()
其中soup
是Beautifulsoup object
我印刷的類型和結果的長度是
類型:<class 'bs4.element.ResultSet'>
長度= 1359
什麼是findAll匹配在這裏?
這個回答已經足夠:
>>> BeautifulSoup('<div>some text</div>').findAll()
[<html><body><div>some text</div></body></html>,
<body><div>some text</div></body>,
<div>some text</div>]
它發現所有的孩子,也就是上層元素html
,內部元件body
,而最裏面的元素,在div
。這就是findAll所做的,它找到所有與該參數匹配的湯對象的所有孩子,這裏的參數是「空」,因此它匹配所有內容。
請注意,使用BeautifulSoup創建對象將添加html
和body
(如果它們不存在)。
我不能通過查看the source真正弄清楚它,但它要麼列出所有的子標籤或沒有。 ResultSet
是列表的一個子類,所以如果長度大於零,那麼我猜想它會返回所有子標記,並且沒有搜索條件。 ResultSet
具有source
屬性,它是SoupStrainer
對象,包含attrs
屬性中的搜索參數。嘗試
result = soup.findAll()
print result.source
你可以遍歷它,看看它包含什麼? – 2015-04-05 17:52:34
@Alberto,不,它太大了,而且內容是一些zomato網址的html源代碼,因此我很難破譯元素結束和其他開始的地方 – turing 2015-04-05 17:55:01
顯然它包含了所有分成不同的html元素,你不會尋找任何特定的元素,所以它會回退所有元素 – 2015-04-05 18:16:30