python调用semantic scholar【语义学者】API获取论文信息

原本是想抽取arxiv上面论文中的参考文献信息,但是PDF文件难以解析。固想到用该论文的信息去其他数据库中检索。semantic scholar上面的论文就可以显示出文章的参考文献信息,固调用API实现此目的。总体的流程就是:

  1. 根据arxiv-id获取semantic scholar - id
  2. 通过semantic scholar - id获取该文章的参考文献信息(title、author、time、id)

数据准备

之前已经爬取好了arxiv上关于GCN的论文元数据,见文章👉python爬取arXiv论文元数据
爬取的论文元数据
例如论文链接https://arxiv.org/pdf/2403.02221的最后一串数字2403.02221就是该篇文章的arxiv-id。

根据文章arxiv-id获取semantic scholar - id

import requests

# 设置 arXiv ID
arxiv_id = "2403.00825"
# 构造请求的 URL,使用 arXiv ID 作为参数
url = f"https://api.semanticscholar.org/v1/paper/arXiv:{
     arxiv_id}"
# 发起请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
    # 解析响应的 JSON 数据
    data = response.json()
    
    # 获取并打印 Semantic Scholar 的 ID
    semantic_scholar_id = data.get("paperId")
    print(f"Semantic Scholar ID: {
     semantic_scholar_id}")
else:
    print(f"请求失败,状态码:{
     response.status_code}")

运行代码后输出:Semantic Scholar ID: f15a2d6878429c395e31d738a481fb39e98ca7e2

通过semantic scholar - id 获取该篇文章的参考文献信息(标题、作者、年份和ID)

import requests

semantic_scholar_id = "075f320d8e82673b51204a768d831a17f9999c02"

# 构造请求的URL
url = f"https://api.semanticscholar.org/v1/paper/{
     semantic_scholar_id}"

# 发起请求
response = requests.get(url)

# 检查请求是否成功
if response.status_code == 200:
    data = response.json()
    
    # 检查是否有引用文献
    if "references" in data and len(data["references"]) > 0:
        # 打印引用文献的信息,例如标题、作者、时间和Semantic Scholar-ID
        for reference in data["references"]:
            print(f"Title: {
     reference.get('title', 'No title available')}")
            # 打印每个引用的作者,如果有的话
            if "authors" in reference:
                authors = ", ".join([author.get("name", "N/A") for author in reference["authors"]])</
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值