我正在尝试使用BeautifulSoup来解析一些网页,每当我使用findAll时它总是会返回null,即使我可以访问像soup.title这样的东西,还有什么不好。
我正在尝试使用this link来解析,这是我在尝试使用它时得到的结果:
>>> site = urllib2.urlopen('http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&IsNodeId=1&Description=nvidia%20gtx%20560%20ti&bop=And&Order=PRICE&PageSize=20')
>>> soup = BeautifulSoup(site)
>>> soup.title
<title>Newegg.com - nvidia gtx 560 ti</title>
>>> soup.findAll('title')
Null
>>>
有谁知道为什么这样做?我正在使用BeautifulSoup 2.1.1
答案 0 :(得分:1)
您使用的是没有findAll
方法的旧版BeautifulSoup。我相信旧版本的等效方法称为fetch
。当方法名称更改为更一致时,在BeautifulSoup 3.0.0版中添加了findAll
方法。来自文档:
Beautiful Soup的早期版本有first,fetch和fetchPrevious等方法。这些方法都在那里,但它们已经被弃用了,很快就会消失。所有这些名字的总效果非常令人困惑。新名称的编号一致:如上所述,如果方法名称为复数或引用All,则返回多个对象。否则,它返回一个对象。