Как создавать запросы в поисковых системах, похожие на людей?

Я взаимодействую с поисковой системой программно, и мне нужно заставить ее думать, что я человек, делающий запросы, а не робот. Это включает в себя создание запросов, по которым кажется правдоподобным, что любой обычный пользователь будет искать, например, "расписание футбола ncaa" или "когда была посадка на Луну?" Я буду делать более тысячи таких запросов ежедневно, и поиск случайных слов из словаря не снизит его, так как это не очень типичная поисковая привычка.

До сих пор я думал о нескольких способах генерировать реалистичные запросы:

  • Получите список самых популярных запросов Google (или Yahoo, Bing и т. Д.) За день.
  • Воспользуйтесь функцией автозаполнения Google, введя случайное слово из словаря с пробелом и отбрасывая рекомендуемые запросы.

Последний подход звучит так, как если бы он включал много обратного инжиниринга. А с первым подходом мне не удалось найти список из более чем 80-ти запросов - единственные источники, которые я нашел, - это тренды AOL (50-100) и Google Trends (30).

Как я могу создать большой набор похожих на людей поисковых фраз?
(Для любых зависимых от языка ответов: я программирую на Python)

1 ответ

Решение

Хотя это, скорее всего, нарушает TOS Google, вы можете легко очистить данные автозаполнения:

import requests
import json

def autocomplete(query, depth=1, lang='en'):
    if depth == 0:
        return

    response = requests.get('https://clients1.google.com/complete/search', params={
        'client': 'hp',
        'hl': lang,
        'q': query
    }).text

    data = response[response.index('(') + 1:-1]
    o = json.loads(data)

    for result in o[1]:
        suggestion = result[0].replace('<b>', '').replace('</b>', '')
        yield suggestion

        if depth > 1:
            for s in autocomplete(suggestion, depth - 1, lang):
                yield s

autocomplete('a', depth=2) дает вам топ-110 запросов, которые начинаются с a (с некоторыми дубликатами). Очистите каждую букву до глубины 2, и у вас будет множество законных запросов на выбор.

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