2014-09-28 2 views
2

Недавно я работал над идеей, которая требует, чтобы я запрашивал изображения Google и извлекал ссылки для изображений, соответствующих этому поисковому запросу. Мой самый перспективный кандидат на работоспособный Google Images API был Google Web Search API, но это похоже, что это будет выходить из службы по состоянию на завтра: https://developers.google.com/web-search/docs/Получить результаты Google без использования API пользовательского поиска

API-интерфейса, который заменил это Google Custom Search API , но это немного обескураживает использование:
Google API Custom Search with Python - Programmatic Search Results
100 результатов поиска в день - это очень строгий предел; это всего четыре раза в час. Я также не хочу, чтобы вы столкнулись с проблемой создания какой-то пользовательской панели поиска, которую я никогда не буду использовать, кроме как через Python.

Я решил обратиться к разбору HTML непосредственно на странице результатов. Это создает проблему, хотя, потому что нигде внутри HTML-страницы страницы нет прямой ссылки на изображение, только URL-адреса реферера. Это справедливо для javascript-разрешенных и javascript-отключенных версий изображений Google (так что даже если Python обманывает javascript как включен, ничего). Я не знаю, куда идти отсюда. Может ли кто-нибудь передать меня какой-то неясной, обновленной библиотеке, которую я как-то упустил, или дать мне несколько указателей?

ответ

1

Вы можете использовать Selenium Webdriver, чтобы фактически выполнить JavaScript и щелкнуть изображения в режиме просмотра миниатюр. После того, как изображение было открыто, ссылка находится в DOM, и вы можете очистить его оттуда. Все Webdriver действительно открывают фактический браузер и имитируют пользователя. Вы можете даже запустить его в качестве безгласного браузера, если используете . Недостатком является то, что даже тогда вам понадобятся все зависимости используемого вами браузера, установленные на вашем сервере.

Однако соскабливание Google противоречит их условиям обслуживания, и они сделают попытку заблокировать вас как можно быстрее. Таким образом, если вы не пройдете через captchas (которые связаны с сеансами), вы, возможно, не сможете совершать множество поисков, прежде чем блокировать этот путь.

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