首页 > 解决方案 > 使用 lxml.html 抓取 Scopus

问题描述

我正在尝试使用 lxml.html 对 Scopus 进行网络抓取(最终创建文档标题列表),但似乎没有从 page.content 存储数据;结果列表(tr_elements)最终为空。

import requests
import lxml.html as lh

url = 'https://www.scopus.com/results/citedbyresults.uri?sort=plf-f&cite=2-s2.0-84939544008&src=s&nlo=&nlr=&nls=&imp=t&sid=fdbfeac69ab848bdff16425dc6937ffc&sot=cite&sdt=a&sl=0&origin=resultslist&offset=1&txGid=b63ddae0b71deb5a4615640f49db9904'
page = requests.get(url)
doc = lh.fromstring(page.content)
tr_elements = doc.xpath('//tr')

由于检查元素显示行具有不同的类(https://i.stack.imgur.com/6QUvw.png),我还尝试通过tr_elements = doc.xpath("//tr[contains(@class, 'searchArea')]")指定要解析的行来运行它,但这也以空列表结束. 有任何想法吗?

标签: pythonweb-scrapingpython-requestslxml.htmlscopus

解决方案


我想到了。访问被拒绝 | www.scopus.com使用 Cloudflare 限制访问


推荐阅读