beautifulsoup findAll find_all

我想用Pythonparsing一个html文件,我使用的模块是美丽的。

我使用之后,发生了一些奇怪的事情。据说函数“find_all”是

和“findAll”一样,但我已经试过了。 但它是不同的。

谁能告诉我不同​​?

import urllib, urllib2, cookielib from BeautifulSoup import * site = "http://share.dmhy.org/topics/list?keyword=TARI+TARI+team_id%3A407" rqstr = urllib2.Request(site) rq = urllib2.urlopen(rqstr) fchData = rq.read() soup = BeautifulSoup(fchData) t = soup.findAll('tr') print t 

在BeautifulSoup第四版中,方法完全一样; 混合大小写的版本( findAllfindAllNextnextSibling等)都已经重新命名,以符合Python风格指南 ,但名称仍然可以使移植更容易。 查看完整列表的方法名称 。

在新的代码中,你应该使用小写的版本,所以find_all

在你的例子中,你正在使用BeautifulSoup 版本3 (自2012年3月起停止使用,如果可以的话, 不要使用它),只有findAll()可用。 未知的属性名称(如.find_all ,仅在BeautifulSoup 4中可用)被视为按照该名称search标签。 文档中没有<find_all>标记,因此None返回。

来自BeautifulSoup的源代码:

http://bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/head:/bs4/element.py#L1260

 def find_all(self, name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs): # ... # ... findAll = find_all # BS3 findChildren = find_all # BS2