Я пытаюсь получить количество результатов поиска в нескольких поисковых системах, и большинство из них принимают мою строку поиска, например:
search_engine_url = "https://www.google.com/search?q=" + query + "&num=" + str(number_result)
search_engine_url = "https://www.bing.com/search?q=" + query + "&num=" + str(number_result)
search_engine_url = "https://au.search.yahoo.com/search?q=" + query + "&num=" + str(number_result)
Однако, когда я передаю ту же структуру в onesearch:
search_engine_url = "https://www.onesearch.com/search?q=" + query
Я не получаю должного результата.
Если я вручную делаю поиск в поисковике — например, лекарственный сахар в крови, то выдаваемая им поисковая строка выглядит так:
https://www.onesearch.com/yhs/search;_ylt=AwrCxGGMcZJfaW0AdxzGnIlQ;_ylu=Y29sbwNiZjEEcG9zAzEEdnRpZAMEc2VjA3Fydw--?fr=yhs-ono-df&hsimp=yhs-df&hspart=ono&intl=us&ei=UTF-8&p=bpmCd4P8ioLi2Utwoqr03SXsAFCPzan7PchA19V1xcls5JfyiIr6dcI4epf%2FJJ5NiMNeZpWUeehFb4o680JW6IxaYKmqNhRrLtBltUGzULyKGCPCs3MPOAf0GuLqGRp%2B50Y4dd%2FRKPKYOuJGM5hzZRuACgcuFzq%2BevGv9ySwQz8%3D&fr2=12642&enct=p&encv=1_24&
Как передать правильную строку поиска для других запросов? Если это невозможно, то какие другие поисковые системы показывают количество результатов поиска на первой странице? До сих пор я нашел только «google», «bing» и «yahoo», которые делают это. Другие поисковые системы заставляют вас использовать следующую страницу, чтобы увидеть больше результатов, не указывая общее количество результатов исследования. Я знаю, что цифры ненастоящие, но я использую их только для того, чтобы решить, принадлежит ли поисковый запрос к той или иной группе, поэтому точность не важна — важен только относительный размер результатов поиска.
В настоящее время я не использую для этого API поисковых систем.
Я использую Python, но я думаю, что язык не имеет значения, поскольку речь идет о строке поиска.
elif search_engine == 'onesearch':
search_engine_url = "https://www.onesearch.com/search?q=" + query + "&num=" + str(number_result)
try:
response = requests.get(search_engine_url, headers=rand_browser) # requests.get(url, headers=headers).text
except requests.exceptions.RequestException as e: # NewConnectionError, MaxRetryError, ConnectionError
print(e)
search_engine = 'google'
continue
soup = BeautifulSoup(response.text, "html.parser")
divs = soup.find_all('span') # <span>102,000,000 results</span>
```