И старый, но может быть актуальным вопросом прямо сейчас. Используйте SelectorGadgets, чтобы легко получать селекторы CSS. Убедитесь, что вы используете прокси-сервер, иначе Google может заблокировать запрос, даже если вы попытаетесь сделать запрос через selenium
.
Код и полный пример в онлайн-среде IDE:
from bs4 import BeautifulSoup
import requests, lxml, os
headers = {
'User-agent':
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
}
proxies = {
'http': os.getenv('HTTP_PROXY')
}
html = requests.get('https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=samsung&oq=', headers=headers, proxies=proxies).text
soup = BeautifulSoup(html, 'lxml')
for result in soup.select('.gs_ri'):
snippet = result.select_one('.gs_rs').text
print(f"Snippet: {snippet}")
Часть вывода:
Snippet: Purpose–Extensive research has shown that country‐of‐origin (COO) information significantly affects product evaluations and buying behavior. Yet recently, a competing perspective has emerged suggesting that COO effects have been inflated in prior research …
В качестве альтернативы вы можете использовать API результатов органического поиска Google Scholar от SerpApi. Это платный API с бесплатной пробной версией на 5000 поисковых запросов.
По сути, он делает то же самое, что и скрипт выше, за исключением того, что вам не нужно думать о том, как решить CAPTCHA или найти хороший прокси (прокси).
Код для интеграции:
from serpapi import GoogleSearch
import os
params = {
"api_key": os.getenv("API_KEY"),
"engine": "google_scholar",
"q": "samsung",
}
search = GoogleSearch(params)
results = search.get_dict()
for result in results['organic_results']:
print(f"Snippet: {result['snippet']}")
Часть вывода:
Snippet: Purpose–Extensive research has shown that country‐of‐origin (COO) information significantly affects product evaluations and buying behavior. Yet recently, a competing perspective has emerged suggesting that COO effects have been inflated in prior research …
Отказ от ответственности, я работаю в SerpApi.
person
Dimitry Zub
schedule
23.05.2021