首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用BeautifulSoup实现Web抓取DOI

用BeautifulSoup实现Web抓取DOI
EN

Stack Overflow用户
提问于 2021-11-19 10:19:23
回答 1查看 89关注 0票数 0

我目前正在做一个关于网络抓取的项目,我需要从谷歌学者的记录中获得信息。我需要提取文章的DOI,相应的HTML页面如下所示。

代码语言:javascript
复制
<span data-v-d3a5356a="" class="metadata--doi">DOI:
      <a data-v-d3a5356a="" id="article--doi--link-metadataSec" href="//doi.org/10.1007/s00508-019-1485-6">10.1007/s00508-019-1485-6</a>&nbsp;</span>

我不能用函数来提取它

代码语言:javascript
复制
page = BeautifulSoup(response.text, 'html.parser')
page.find_all("span", "data-v-d3a5356a")

如何提取字符串"10.1007/s00508-019-1485-6“?

EN

回答 1

Stack Overflow用户

发布于 2021-11-19 13:48:06

该网页是一个动态页面-这意味着数据是由JavaScript加载的。beautifulsoup不适用于动态页面。你必须使用selenium来抓取这个站点。

但是,如果您在Chrome的网络选项卡下查看,您可以看到数据是从DevTools加载的。您可以直接从该API获取数据。这是link

下面是如何从该API端点提取数据。

代码语言:javascript
复制
import requests

url = 'https://europepmc.org/api/get/articleApi?query=(EXT_ID:30980146%20AND%20SRC:med)&format=json&resultType=core'
r = requests.get(url)
x = r.json()

print(f"DOI: {x['resultList']['result'][0]['doi']}")
代码语言:javascript
复制
DOI: 10.1007/s00508-019-1485-6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70033227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档