Количество посещений веб-поиска

У меня есть набор поисковых запросов размером ок. 10 миллионов Цель состоит в том, чтобы собрать количество хитов, возвращаемых поисковой системой для всех из них. Например, Google возвращает около 47 500000 для запроса "stackru".

Проблема в том, что:

1- Google API ограничен 100 запросами в день. Это далеко не полезно для моей задачи, так как мне нужно было бы получить много счетов.

2- Я использовал Bing API, но он не возвращает точное число. Накапливайте в смысле совпадения количества совпадений, отображаемых в интерфейсе Bing. Кто-нибудь сталкивался с этим вопросом раньше?

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

Все, что меня волнует, - это количество хитов, и я открыт для любых предложений.


simchona: что вы подразумеваете под опросом людей?:)

hackartist: спасибо за ваш комментарий и статью.

1 ответ

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

Вы можете настроить ряд прокси-серверов, которые меняют свои IP-адреса каждые 100 запросов, чтобы вы могли отправлять запросы в Google как на разных людей (кажется, это большая работа). Или вы можете скачать википедию и написать что-то для анализа данных, чтобы при поиске по термину вы могли видеть, на сколько страниц он попадает. Конечно, это набор данных намного меньшего размера, чем вся сеть, но он должен помочь вам начать работу. Другой возможный источник данных - данные Google n-граммы, которые вы можете загрузить и проанализировать, чтобы увидеть, сколько книг и страниц попадают под условия поиска. Возможно, сочетание этих методов может повысить точность любого заданного поискового запроса.

Конечно, ни один из этих методов не настолько хорош, как если бы вы могли просто получить количество страниц Google напрямую, но вполне понятно, что это данные, которые они не хотят предоставлять бесплатно.

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

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

Лучшее, что мне удалось добиться, - это уточнить оценку, обманув поисковую систему и заставив искать больше результатов. Для этого вам нужно перейти на страницу 2 результатов, а затем изменить "первый" параметр в URL-адресе, чтобы он был выше. Это может позволить вам найти конец набора результатов (я уверен, что в прошлом году это сработало для меня, хотя сегодня это сработало только до первых нескольких тысяч). Даже если это не позволит вам добраться до конца набора результатов, вы увидите, что оценка улучшается, поскольку механизм запросов учитывает больше совпадений.

Я обнаружил, что Bing немного проще в использовании описанным выше способом, но мне все еще не удалось получить точное количество сайтов, которые я рассматривал. Google, похоже, активно препятствует такому использованию своего движка, что неудивительно. Bing также, похоже, достиг пределов, хотя они больше походили на дефекты.

Для моего варианта использования я смог получить обе поисковые системы с примерно одинаковыми оценками (148 тыс. Для Bing, 149 тыс. Для Google), используя описанную выше методику. Наибольшее количество обращений, которое мне удалось получить от Google, составило 323, в то время как Bing поднялось до 700 - оба совершенно неточные, но неудивительно, поскольку это не их предполагаемое использование продукта.

Если вы хотите сделать это для своего собственного сайта, вы можете использовать инструменты для веб-мастеров поисковой системы, чтобы просмотреть количество проиндексированных страниц. Для других сайтов, я думаю, вам нужно будет использовать API поисковой системы (за определенную плату).

Другие вопросы по тегам