Недавно я также искал API поиска Google и был введен в заблуждение много устаревшей информации. Вот что я нашел на сайте Google Developers: https://developers.google.com/api-client-library/python/apis/customsearch/v1
Согласно документации ваша функция будет что-то вроде
from googleapiclient.discovery import build
def google_results_count(query):
service = build("customsearch", "v1",
developerKey="[put your API key here]")
result = service.cse().list(
q=query,
cx='[put your CSE key here']
).execute()
return result["searchInformation"]["totalResults"]
print google_results_count('Python is awesome')
К сожалению, с помощью CSE API даст вам различное количество результатов от одного вы получаете с помощью веб поиск. В приведенном выше примере я получил 2 680 000 в Python и ок. 21 000 000 для того же запроса на Google.com Вот почему: https://support.google.com/customsearch/answer/70392?hl=en
Получение ключей API и CSE и всех ограничений CSE - это совсем другая история, я настоятельно рекомендую вам посмотреть на этот ответ: https://stackoverflow.com/a/11206266/1704272 и следующий ниже для альтернатив.
Другой подход заключается в анализе ответа HTML от Google.com, который даст вам самые полные результаты, но он не очень надежный, поскольку Google изменяет разметку HTML. И что более важно, это противоречит их TOS, более подробно здесь: Is it ok to scrape data from Google results?
Мое заключение. У вас есть три возможности:
- Используйте API CSE Google (бесплатно). Используйте это, если вам нужно оставаться законным, и вы уверены, что не превысите лимит. Не может использоваться в общедоступном приложении.
- Используйте платный API (Google или любой другой, менее дорогой). Это законно использовать это для любого публичного приложения, но быть готовым заплатить за это.
- Очистить веб-страницу Google. Это даст вам наилучшие результаты, но я бы использовал этот вариант только для частных нужд.
Возможный дубликат [Как вы используете API Google для простого поиска в Python?] (Http://stackoverflow.com/questions/20485141/how-do-you-use-googles-api-to -do-a-simple-search-in-python) –
Многие старые ответы, похоже, не работают. – Isaac