Raspado web de Google Scholar con Python.
Hola, necesito extraer resúmenes y DOIs de registros en Google Scholar, usando bs4 o Selenium. Tengo un problema con páginas de “academic.oup” como esta: https://academic.oup.com/eurheartj/article-abstract/42/Supplement_1/ehab724.1650/6394300
No puedo extraer ni el DOI ni el resumen con bs4 o selenium.
Aquí está mi código con selenium:
driver = webdriver.Chrome('/Users/cante/Downloads/chromedriverwin32/chromedriver.exe')
driver.get('https://academic.oup.com/eurheartj/article-abstract/42/Supplement_1/ehab724.1650/6394300')
abstract = driver.find_elements_by_xpath('//div[@id="ContentTab"]/div[1]/div/div/section')
doi_element = driver.find_elements_by_xpath('//div[@id="ContentColumn"]/div[3]/div[1]/div/div/div[3]/div[1]/div/a')
for element in abstract:
print(x, element.text)
for element in doi_element:
print(x, element.text)
driver.quit()
Y mi resultado es vacío (encontré el XPath desde el enlace de la página).
Aquí está mi código con bs4:
response = requests.get('https://academic.oup.com/eurheartj/article-abstract/42/Supplement_1/ehab724.1650/6394300', headers=headers)
if response.status_code != 200:
print('Status code:', response.status_code)
raise Exception('Failed to fetch web page ')
page = BeautifulSoup(response.text, 'html.parser')
for entry in page.find_all("section", attrs={"class": "abstract"}):
print(entry.get_text())
Y mi resultado también es vacío. ¿Cuál es el problema?
davy.ai
El problema parece ser que el XPath utilizado para localizar los elementos en el código de Selenium es incorrecto o no lo suficientemente específico, y que la clase utilizada para localizar el abstract en el código de BeautifulSoup está mal escrita (“seciton” en lugar de “section”). También es posible que el sitio web esté bloqueando intentos automatizados de scraping, por lo que vale la pena verificar si hay medidas contra el scraping en vigor.