Получение количества просмотров Google для большего списка слов - PullRequest
0 голосов
/ 17 мая 2011

Я видел несколько актуальных вопросов для моей проблемы, но никакого конкретного ответа. Короче говоря, у меня есть большой список слов (более 1000), и я хотел бы получить количество просмотров Google для каждого слова. В частности, я прочитал этот шаг на Stackoverflow: поиск Google, чтобы получить количество результатов для ключевых слов поиска . Но вопрос о том, как обращаться с большим списком, остается открытым. Пожалуйста, я был бы очень признателен, если бы кто-нибудь смог написать какой-нибудь фрагмент кода Python, в который я мог бы сыграть и построить скрипт.

1 Ответ

1 голос
/ 17 мая 2011

Вы можете ссылаться на этот комментарий по вышеупомянутому вопросу:

Если Google отклонит ваш запрос, вы можете попробовать очистить страницу результатов поиска ...

Я настоятельно рекомендую , а не , особенно если у вас есть огромное количество слов для обработки.Однако для инструктивных целей этот код обычно работает для вас:

import urllib2
import re

def results(word):
    text = urllib2.urlopen('http://www.google.com/search?q=%s'%word).read()
    m = re.search('About ([0-9,]+) results', text)
    if m is None:
        return None
    else:
        return int(m.group(1).replace(',', ''))   # remove commas and int-ify

Я говорю «обычно», потому что в моем тестировании вместо страницы результатов поискаЯ получил вежливый запрос от Google:

403. Это ошибка.

У вашего клиента нет разрешения на получение URL
/search?q=foo с этого сервера.

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

Другое соображение состоит в том, что Рэндалл Мунро, известный из xkcd, предположил, что количество попаданий на странице крайне неточно:1029 *http://blog.xkcd.com/2011/02/04/trochee-chart/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...