BeautifulSoup всегда возвращает ноль, когда я использую findAll - PullRequest
1 голос
/ 09 февраля 2011

Я пытаюсь использовать BeautifulSoup для анализа некоторых веб-страниц, и он всегда возвращает ноль, когда я использую findAll, даже если у меня есть доступ к таким вещам, как soup.title и еще много чего.

Я пытаюсьиспользуйте эту ссылку для анализа прямо сейчас, и вот что я получаю, когда пытаюсь что-то с ним делать:

>>> 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 Ответ

1 голос
/ 09 февраля 2011

Вы используете старую версию BeautifulSoup, у которой нет метода findAll.Я считаю, что эквивалентный метод для старых версий был назван fetch.Метод findAll был добавлен в BeautifulSoup версии 3.0.0, когда имена методов были изменены для большей согласованности.Из документации:

Предыдущие версии Beautiful Soup имели такие методы, как first, fetch и fetchPrevious.Эти методы все еще существуют, но они устарели и могут скоро уйти.Общий эффект от всех этих имен был очень запутанным.Новые имена называются последовательно: как упоминалось выше, если имя метода множественное или ссылается на All, он возвращает несколько объектов.В противном случае он возвращает один объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...