汤不';不要下载HTML Python中的所有内容
我正在使用BeautifulSoup(bs4)从SSRN纸质URL中提取数据,以下是供参考的URL。我想要的数据在页面右侧的PlumX metrics小部件上。如果你把鼠标悬停在它上面,看看“引文:95”,我想摘录95。这在HTML中显示为:汤不';不要下载HTML Python中的所有内容,python,html,beautifulsoup,Python,Html,Beautifulsoup,我正在使用BeautifulSoup(bs4)从SSRN纸质URL中提取数据,以下是供参考的URL。我想要的数据在页面右侧的PlumX metrics小部件上。如果你把鼠标悬停在它上面,看看“引文:95”,我想摘录95。这在HTML中显示为: `<li class="plx-citation"> <span class="ppp-label">Citation Indexes: </span> <span class="ppp
`<li class="plx-citation">
<span class="ppp-label">Citation Indexes: </span>
<span class="ppp-count">95</span>
</li>`
输出为[]
3) 我打印出了整个soup和lxml,plumX数据就消失了(这些HTML分支不在那里,事实上引文也没有任何HTML)
它位于主页面中(如果您在浏览器中使用inspect元素将其签出,但从未在代码中签出)。我甚至尝试使用不同的解析器,比如
html5lib
,但它并没有解决我的问题。有人能告诉我怎么办吗 实际上是无法提取所需值的主要原因,因为小部件
是通过JavaScript
加载的,后者从API
获取数据
import requests
import json
params = {
'type': 'ssrn_id',
'id': '962461',
'site': 'ssrn',
'href': 'https://plu.mx/ssrn/a/?ssrn_id=962461',
'ref': '',
'pageToken': 'f0399e1a-c031-0c64-6619-423f-7ebf45fa0416',
'isElsWidget': 'false'
}
def main(url):
r = requests.get(url, params=params).json()
print(r['statistics']['Citations'][0]['count'])
# print(json.dumps(r, indent=4)) for nice view :)
main("https://api.plu.mx/widget/other/artifact")
输出:
95
您对实时检索此信息有何建议。我试图通过大量的论文来实现这一点,以便获得
id
和href
,但我不确定pageToken@Afr0这将为您解释如何获取XHR
请求。您好,我已通读了它,如果我理解正确,我可以使用requests\u html
库来完成它?我不想使用selenium,因为它会破坏我的计算时间(大约10万篇论文)。我也不知道你是怎么从网站上得到的。我点击了Inspect Element>Network>XHR
,没有看到pageToken@Afr0如果您能够找到XHR
请求。因此,您必须按下参数
,因此在这种情况下,您甚至不需要使用请求\u html
@Afr0。我仅限于为当前问题提供答案。因为这将违反社区规则,该规则将针对特定问题限制您的问题。因此,您根本不需要使用pageToken
参数。因为它是一个自动动态生成的令牌,由Java
函数用于您的问题不感兴趣的其他事情。
95