当我使用findAll时,BeautifulSoup总是返回null

时间:2011-02-09 00:47:38

标签: python beautifulsoup

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

您使用的是没有findAll方法的旧版BeautifulSoup。我相信旧版本的等效方法称为fetch。当方法名称更改为更一致时,在BeautifulSoup 3.0.0版中添加了findAll方法。来自文档:

  

Beautiful Soup的早期版本有first,fetch和fetchPrevious等方法。这些方法都在那里,但它们已经被弃用了,很快就会消失。所有这些名字的总效果非常令人困惑。新名称的编号一致:如上所述,如果方法名称为复数或引用All,则返回多个对象。否则,它返回一个对象。