您正在體驗BeautifulSoup
在底層使用的differences between parsers。
選擇要麼html.parser
,或html5lib
:
>>> from bs4 import BeautifulSoup
>>> html = 'index.html'
>>> soup = BeautifulSoup(open(html), 'html')
>>> len(soup.findAll('div'))
0
>>> soup = BeautifulSoup(open(html), 'lxml')
>>> len(soup.findAll('div'))
0
>>> soup = BeautifulSoup(open(html), 'html.parser')
>>> len(soup.findAll('div'))
774
>>> soup = BeautifulSoup(open(html), 'html5lib')
>>> Alen(soup.findAll('div'))
774
請注意,如果你不這樣做specify a parser,BeautifulSoup
會自動把它撿起來:
如果不指定任何東西,你」將獲得安裝了 的最佳HTML解析器。 Beautiful Soup將lxml的解析器評爲最好,然後是 html5lib,然後是Python的內置解析器。
發現一個'修復'...使用bs3工作:( – javatripping 2014-12-08 09:36:33