Python - простой способ очистить Google, скачать лучшие N хитов (целые .html документы) для данного поиска - PullRequest
10 голосов
/ 16 марта 2011

Существует ли простой способ очистить Google и написать текст (только текст) из первых N (скажем, 1000) .html (или любых других) документов для данного поиска?

В качестве примера представьте, что вы ищете фразу «большой плохой волк» и загружаете только текст из 1000 самых популярных хитов, т.е. фактически загружаете текст с этих 1000 веб-страниц (но только с этих страниц, а не со всего сайта). ).

Я предполагаю, что это будет использовать библиотеку urllib2? Я использую Python 3.1, если это помогает.

Ответы [ 3 ]

4 голосов
/ 16 марта 2011

Проверьте BeautifulSoup для удаления содержимого с веб-страниц. Предполагается, что он очень терпим к сломанным веб-страницам, что поможет, потому что не все результаты хорошо сформированы. Таким образом, вы должны быть в состоянии:

  • Запрос http://www.google.ca/search?q=QUERY_HERE
  • Извлечение и следование ссылкам на результаты с помощью BeautifulSoup (похоже, что class = "r" для ссылок на результаты)
  • Извлечение текста из страниц результатов с помощью BeautifulSoup
3 голосов
/ 17 марта 2011

Как уже упоминалось, соскоб Google нарушает их TOS.Тем не менее, это, вероятно, не тот ответ, который вы ищете.

Доступен PHP-скрипт, который отлично справляется с поиском в Google: http://google -scraper.squabbel.com / Просто дайте ему ключевое слово, # желаемых результатов иверну все результаты за вас.Просто проанализируйте возвращенные URL-адреса, используйте urllib или curl для извлечения исходного HTML-кода, и все готово.

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

2 голосов
/ 16 марта 2011

Официальным способом получения результатов от Google программным способом является использование API пользовательского поиска Google . Как отметили icktoofay , другие подходы (например, прямая проверка результатов или использование модуля xgoogle ) нарушают Условия использования Google . Из-за этого вы можете рассмотреть возможность использования API из другой поисковой системы, такой как Bing API или Yahoo! * Service .

...