2015-11-15 4 views
-3

Я пытаюсь получить ссылки с веб-страницы IMDB. Внутри стола есть ссылки, но я получаю эту ошибку я не знаю, как получать ссылки я нахожусь новичок плз помочьИзвлечь ссылку из таблицы IMDB с помощью BeautifulSoup

from bs4 import BeautifulSoup 
import urllib2 

var_file = urllib2.urlopen("http://www.imdb.com/chart/top") 

var_html = var_file.read() 

var_file.close() 
soup = BeautifulSoup(var_html) 
for item in soup.find_all(tbody={'class': 'lister-list'}): 
    for link in item.find_all('a'): 
     print(link.get('href')) 

Я получаю эту ошибку

C:\Python27\lib\site-packages\bs4\__init__.py:166: UserWarning: No parser was ex 
plicitly specified, so I'm using the best available HTML parser for this system 
("lxml"). This usually isn't a problem, but if you run this code on another syst 
em, or in a different virtual environment, it may use a different parser and beh 
ave differently. 

To get rid of this warning, change this: 

BeautifulSoup([your markup]) 

to this: 

BeautifulSoup([your markup], "lxml") 

    markup_type=markup_type)) 
+2

Просто примечание стороны: Имейте в виду, что IMDb не позволяет выскабливание. Поэтому, если вы очищаете слишком много данных, они могут запретить ваш IP-адрес. –

ответ

0

Использование

soup.find_all(class_='lister-list') 
+0

спасибо за помощь, но она говорит, что F: \> питон links1.py Файл "links1.py", строка 10 для элемента в soup.find_all (класс _ = 'Листер-лист') ^ SyntaxError: недопустимый синтаксис я полагаю Синтаксис - это класс = '. lister-list', но такая же ошибка –

+0

эй большое спасибо, он работал, все было отлично, я пропустил: после soup.find_all (class _ = 'lister-list'), поскольку он был в цикле –

+0

, здесь работает код 'от BS4 импорта BeautifulSoup импорт urllib2 var_file = urllib2.urlopen ("http://www.imdb.com/chart/top") var_html = var_file.read() var_file.close() s ппа = BeautifulSoup (var_html, "LXML") для элемента soup.find_all (класс _ = 'Листер-лист'): \t для связи в item.find_all ('а'): \t \t печати (link.get ('href')) ' –

1

Это просто предупреждение, говорит, что вы не выбрали парсер ...

Вместо

soup = BeautifulSoup(var_html) 

Try:

soup = BeautifulSoup(var_html, "lxml") 
Смежные вопросы