2016-09-07 5 views
-1

Я только начал с веб-соскабливания с Python и ударил стену. Я использую библиотеку запросов, чтобы получить код HTML с веб-сайта. Например, Google сайт Результат поиска: «https://www.google.com/?gws_rd=ssl#q=ball»Получение всего HTML от request.get()

Когда я ударил F12 и проверить HTML, это выглядит иначе, чем с:

site = requests.get("https://www.google.com/?gws_rd=ssl#q=ball") 
print(site.text) 

с requests.get, текст намного короче, и не все информация видна (она начинается с !doctype, однако). Из-за этого я не могу работать с этим HTML.

Можете ли вы сказать мне, где ошибка?


Это на самом деле упражнение из книги «Автоматизация скучных вещей с помощью Python». Задача состоит в том, чтобы найти какой-то элемент Google, а затем найти несколько первых результатов с помощью локаторов HTML. Я не могу этого сделать, потому что, когда я использую requests.get(), я не вижу никаких объектов для ссылок в HTML-коде.

+0

Помимо того факта, что некоторые факторы влияют на то, что возвращает Google, существует также динамическое создание контента с помощью js –

+0

Похоже, это также может быть полезно - http://stackoverflow.com/questions/22623798/google-search-with-python -requests-library –

ответ

1

HTML, который вы видите с помощью средств разработки браузера, - это то, с чем работает браузер. Сюда входят любые изменения, выполненные с помощью Javascript. Данные, которые вы получаете при использовании запросов, до того, как на странице работает Javascript. (Обратите внимание, что запросы не обрабатывают Javascript, поэтому вам не удастся получить обработанную страницу javascript, используя только запросы.)

Если вы специально хотите очистить Google Search, используйте URL-адрес, например https://www.google.com/search?q=test. Этот конкретный URL-адрес предназначен для сайта, не являющегося javascript Google. Имейте в виду, что Google (и большинство других сайтов) не ценят царапины, поэтому при выполнении этих проблем вы можете столкнуться с другими проблемами.

+0

И это работает! Большое спасибо. Проблема заключалась в том, что я использовал: «https://www.google.com/?gws_rd=ssl#q=» в качестве базы (я скопировал ее непосредственно из своего браузера). Вместо этого я должен использовать «https://www.google.com/search?q=», как вы сказали. Еще раз спасибо. – Maciejjy

0

Некоторые HTML-элементы генерируются JavaScript.

Используйте «показать исходный код» в своем браузере, чтобы увидеть исходный код. Он должен быть похож на текст ответа на запрос.

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