我想解析与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
在BeautifulSoup版本4,该方法是完全一样的; 在混合大小写版本( findAll
, findAllNext
, nextSibling
等)已全部更名,以符合Python的风格指南 ,但老名字仍然可以使移植变得更简单。 请参阅方法名称的完整列表。
在新的代码,你应该使用小写版本,所以find_all
等。
然而,在你的榜样,你正在使用BeautifulSoup 第3版 (2012年3月停产, 不使用它,如果你能帮助它),其中只有findAll()
是可用的。 未知属性的名称(如.find_all
,如果你正在寻找该名称的标签,这仅是提供BeautifulSoup 4)治疗。 没有<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