beautifulsoup的findAll find_all(beautifulsoup findA

2019-06-18 01:46发布

我想解析与Python中的HTML文件,我使用的模块beautifulsoup。

我用它之后,一些奇怪happened.It据说功能“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

Answer 1:

在BeautifulSoup版本4,该方法是完全一样的; 在混合大小写版本( findAllfindAllNextnextSibling等)已全部更名,以符合Python的风格指南 ,但名字仍然可以使移植变得更简单。 请参阅方法名称的完整列表。

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

然而,在你的榜样,你正在使用BeautifulSoup 第3版 (2012年3月停产, 使用它,如果你能帮助它),其中只有findAll()是可用的。 未知属性的名称(如.find_all ,如果你正在寻找该名称的标签,这仅是提供BeautifulSoup 4)治疗。 没有<find_all>文档中的标记,因此None返回了点。



Answer 2:

从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


文章来源: beautifulsoup findAll find_all