BeautifulSoup中“ findAll”和“ find_all”之间的区别
问题内容:
我想用Python解析HTML文件,而我正在使用的模块是BeautifulSoup。
据说功能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')
谁能告诉我区别?
问题答案:
在BeautifulSoup版本4中,方法完全相同。在混合大小写版本(findAll
,findAllNext
,nextSibling
等)已全部更名,以符合Python的风格指南,但
老
名字仍然可以使移植变得更简单。有关完整列表,请参见方法名称。
在新代码中,应使用小写版本,如等等find_all
。
但是,在您的示例中,您使用的是BeautifulSoup 版本3 (自2012年3月起停产,如果可以帮助 请不要
使用它),该版本仅findAll()
可用。未知的属性名称(例如.find_all
,仅在BeautifulSoup
4中可用)被视为您正在按该名称搜索标签。<find_all>
您的文档中没有标签,因此None
将其返回。