Как создавать запросы в поисковых системах, похожие на людей?
Я взаимодействую с поисковой системой программно, и мне нужно заставить ее думать, что я человек, делающий запросы, а не робот. Это включает в себя создание запросов, по которым кажется правдоподобным, что любой обычный пользователь будет искать, например, "расписание футбола 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, и у вас будет множество законных запросов на выбор.