2016-06-24 4 views
0

Я строю webCrawler, который должен читать ссылки внутри веб-страницы. Для чего я использую библиотеку python urllib2 для открытия и чтения веб-сайтов.Невозможно прочитать содержимое HTML

Я нашел сайт, на котором я не могу получить данные. URL-адрес является «http://www.biography.com/people/michael-jordan-9358066»

Мой код,

import urllib2 

response = urllib2.urlopen("http://www.biography.com/people/michael-jordan-9358066") 
print response.read() 

Выполнив выше код, содержание, я получаю от веб-сайта, если открыть его в браузере и контента, я получаю от выше код очень отличается. Содержимое из приведенного выше кода не содержит никаких данных.

Я думал, что это может быть из-за задержки при чтении веб-страницы, поэтому я представил задержку. Даже после задержки ответ одинаковый.

response = urllib2.urlopen("http://www.biography.com/people/michael-jordan-9358066") 
time.sleep(20) 
print response.read() 

Веб-страница прекрасно открывается в браузере.

Однако приведенный выше код отлично подходит для чтения Википедии или некоторых других веб-сайтов. Я не могу найти причину этого странного поведения. Пожалуйста, помогите, спасибо заранее.

+0

Кажется, что сайт, который вы посещаете, обнаруживает User-Agent в http-заголовке. Если это так, установка User-Agent заставит его работать. – WKPlus

+0

Я думаю, что, возможно, все данные загружаются js, поэтому вы не можете найти какой-либо контент на странице html. –

+0

@WKPlus: Я попробовал добавить агент пользователя как firefox, ответ все тот же. – wh0

ответ

3

То, что вы испытываете, скорее всего, будет иметь эффект dynamic web pages. Эти страницы не содержат статического содержимого для urllib или requests. Данные загружаются на сайт. Вы можете использовать Python's selenium, чтобы решить эту проблему.

+0

Это правильный ответ. Я только что проверил страницу, и весь ее контент генерируется динамически. –

+0

Если вы можете выяснить, какой URL-адрес для использования javascript использовать для загрузки данных, возможно, вы можете просто открыть этот URL-адрес для получения данных, без необходимости в селене, который, я думаю, недостаточно эффективен. – WKPlus

Смежные вопросы