Arxiv学术论文查询接口详解 转载

这篇博客主要转载自:Arxiv学术论文查询接口详解,我觉得写的很好,所以我也不重新整理这一部分的API接口了。我后续使用这一部分的API接口来进行爬取得到最新的文章,还是非常方便的,所以也同时推荐给大家,能最快follow新文章

Arxiv API 允许以编程方式获取 https://arxiv.org 上的论文。API 的基本结构为:

1
http://export.arxiv.org/api/{method_name}?{parameters}

查询接口

查询接口的的 method_name 为 query,下面是查询方法的参数,参数之间以 & 分隔。

parameterstypedefaultsrequired
search_querystringNoneNo
id_listcomma-delimited string(以 ‘,’ 分隔的字符串)NoneNo
startint0No
max_resultsint10No

参数说明

  • 如果 API 只包含 search_query(不包含 id_list),那么返回与 search_query 内容匹配的结果。
  • 如果 API 只包含 id_list(不包含 search_query),那么返回 id_list 中每一项的结果。
  • 如果 API 中包含了 search_query 和 id_list,那么返回在 id_list 中,并且与 search_query 匹配的文章。

分页查询

通常情况下,一个查询可能有成百上千个返回结果。有时候我们不希望一次性查询到这么多数量,那么可以使用 startmax_results 两个字段来进行分页查询。

  • start 是查询的起始索引,以 0 为第一个。
  • max_results 是查询返回的集合数。

下面来举例说明一下:

1
2
3
http://export.arxiv.org/api/query?search_query=all:electron&start=0&max_results=10 (1)
http://export.arxiv.org/api/query?search_query=all:electron&start=10&max_results=10 (2)
http://export.arxiv.org/api/query?search_query=all:electron&start=20&max_results=10 (3)

查询结果分别为:

  1. 0 - 9
  2. 10 - 19
  3. 20 - 29

需要注意的是,由于 API 的限制,在多次调用 API 的情况下,建议每次调用的时间间隔为 3 秒。每次调用返回的最大数量为 2000 个。arXiv的硬限制约为 50,000 条记录; 对于与 50,000 多个原稿匹配的查询,无法接收全部结果. 解决这个问题的最简单的解决方案是将中断查询成小块,例如使用的时间片,与一系列日期的submittedDatelastUpdatedDate

排序查询

对查询的结果进行排序有两个选项:sortBysortOrder

  • sortBy 的值有:relevance,lastUpdatedDate 和 submittedDate。
  • sortOrder 的值有:ascending 和 descending。

示例:

1
http://export.arxiv.org/api/query?search_query=ti:%22electron%20thermal%20conductivity%22&sortBy=lastUpdatedDate&sortOrder=ascending

结果响应

API 的 Response 内容中是以 Atom 1.0 为主体的,Atom 是 XML 的一种语法。下面分别来说明各个标签的含义。

Feed Metadata

每个 Response 都会包含的内容:

  1. 版本和命名空间
1
2
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  1. Title:feed 的标题,通常为查询 URL 的字符串。
1
2
3
<title xmlns="http://www.w3.org/2005/Atom">
ArXiv Query: search_query=all:electron&amp;id_list=&amp;start=0&amp;max_results=1
</title>
  1. Id:查询的唯一标识(注意不是查询的每个文章的 id),保证每个查询 id 是唯一的。
1
2
3
<id xmlns="http://www.w3.org/2005/Atom">
http://arxiv.org/api/cHxbiOdZaP56ODnBPIenZhzg5f8
</id>
  1. Link:查询 URL 的规范化。
1
<link xmlns="http://www.w3.org/2005/Atom" href="http://arxiv.org/api/query?search_query=all:electron&amp;id_list=&amp;start=0&amp;max_results=1" rel="self" type="application/atom+xml"/>
  1. Updated:提供了 feed 内容最后一次更新的时间。
1
<updated xmlns="http://www.w3.org/2005/Atom">2007-10-08T00:00:00-04:00</updated>
  1. Opensearch:扩展元素,包含了查询的返回数量以及分页信息等。
1
2
3
4
5
6
7
8
9
<opensearch:totalResults xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
1000
</opensearch:totalResults>
<opensearch:startIndex xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
0
</opensearch:startIndex>
<opensearch:itemsPerPage xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
1
</opensearch:itemsPerPage>

Entry Metadata

正常情况下,Response 返回结果中的 feed 标签会包含 0 个或者多个 entry 标签。每个 entry 表示一个查询的返回文章,下面分别说一下 entry 中的各个元素。

  1. Title:返回文章的标题
1
2
3
<title xmlns="http://www.w3.org/2005/Atom">
Multi-Electron Production at High Transverse Momenta in ep Collisions at HERA
</title>
  1. Id:文章的 URL ,可以认为是文章的绝对路径。最后一个字段是文章的唯一标识符。
1
2
3
<id xmlns="http://www.w3.org/2005/Atom">
http://arxiv.org/abs/hep-ex/0307015
</id>
  1. Published/Updated:文章的发布日期和更新日期。
1
2
3
4
5
6
<published xmlns="http://www.w3.org/2005/Atom">
2007-02-27T16:02:02-05:00
</published>
<updated xmlns="http://www.w3.org/2005/Atom">
2007-06-25T17:09:59-04:00
</updated>
  1. Summary:文章的摘要。
1
2
3
4
5
6
7
8
9
10
11
12
<summary xmlns="http://www.w3.org/2005/Atom">
Multi-electron production is studied at high electron transverse momentum
in positron- and electron-proton collisions using the H1 detector at HERA.
The data correspond to an integrated luminosity of 115 pb-1. Di-electron
and tri-electron event yields are measured. Cross sections are derived in
a restricted phase space region dominated by photon-photon collisions. In
general good agreement is found with the Standard Model predictions.
However, for electron pair invariant masses above 100 GeV, three
di-electron events and three tri-electron events are observed, compared to
Standard Model expectations of 0.30 \pm 0.04 and 0.23 \pm 0.04,
respectively.
</summary>
  1. Author:文章的作者,包含一个或者多个 name 标签,分别表示多个作者。
1
2
3
<author xmlns="http://www.w3.org/2005/Atom">
<name xmlns="http://www.w3.org/2005/Atom">H1 Collaboration</name>
</author>
  1. Category:文章的分类。
1
2
3
<category xmlns="http://www.w3.org/2005/Atom" term="cs.LG" scheme="http://arxiv.org/schemas/atom"/>
<category xmlns="http://www.w3.org/2005/Atom" term="cs.AI" scheme="http://arxiv.org/schemas/atom"/>
<category xmlns="http://www.w3.org/2005/Atom" term="I.2.6" scheme="http://arxiv.org/schemas/atom"/>
  1. Link,对于每个文章,最多有三个 link 元素,通过 ref 和 title 来区别,下面的表格表示 ref 和 title 的内容:
reltitlerefers toalways present
alternate-abstract pageyes
relatedpdfpdfyes
relateddoiresolved doino

例子:

1
2
3
<link xmlns="http://www.w3.org/2005/Atom" href="http://arxiv.org/abs/hep-ex/0307015v1" rel="alternate" type="text/html"/>
<link xmlns="http://www.w3.org/2005/Atom" title="pdf" href="http://arxiv.org/pdf/hep-ex/0307015v1" rel="related" type="application/pdf"/>
<link xmlns="http://www.w3.org/2005/Atom" title="doi" href="http://dx.doi.org/10.1529/biophysj.104.047340" rel="related"/>
  1. arxiv:primary_category:主要分类的扩展元素。
1
<arxiv:primary_category xmlns:arxiv="http://arxiv.org/schemas/atom" term="cs.LG" scheme="http://arxiv.org/schemas/atom"/>
  1. arxiv:comment:评论扩展元素。
1
2
3
<arxiv:comment xmlns:arxiv="http://arxiv.org/schemas/atom">
23 pages, 8 figures and 4 tables
</arxiv:comment>
  1. arxiv:affiliation:作者从属关系。
1
2
3
4
<author>
<name>G. G. Kacprzak</name>
<arxiv:affiliation xmlns:arxiv="http://arxiv.org/schemas/atom">NMSU</arxiv:affiliation>
</author>
  1. arxiv:journal_ref:期刊说明
1
2
3
<arxiv:journal_ref xmlns:arxiv="http://arxiv.org/schemas/atom">
Eur.Phys.J. C31 (2003) 17-29
</arxiv:journal_ref>
  1. arxiv:doi:doi 说明
1
2
3
<arxiv:doi xmlns:arxiv="http://arxiv.org/schemas/atom">
10.1529/biophysj.104.047340
</arxiv:doi>

Errors

返回错误,如果请求的响应出现错误,会返回一个详细的错误信息。例如下面是一个错误 id 的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<link xmlns="http://www.w3.org/2005/Atom" href="http://arxiv.org/api/query?search_query=&amp;id_list=1234.12345" rel="self" type="application/atom+xml"/>
<title xmlns="http://www.w3.org/2005/Atom">ArXiv Query: search_query=&amp;id_list=1234.12345</title>
<id xmlns="http://www.w3.org/2005/Atom">http://arxiv.org/api/kvuntZ8c9a4Eq5CF7KY03nMug+Q</id>
<updated xmlns="http://www.w3.org/2005/Atom">2007-10-12T00:00:00-04:00</updated>
<opensearch:totalResults xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">1</opensearch:totalResults>
<opensearch:startIndex xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">0</opensearch:startIndex>

<opensearch:itemsPerPage xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">1</opensearch:itemsPerPage>
<entry xmlns="http://www.w3.org/2005/Atom">
<id xmlns="http://www.w3.org/2005/Atom">http://arxiv.org/api/errors#incorrect_id_format_for_1234.12345</id>
<title xmlns="http://www.w3.org/2005/Atom">Error</title>
<summary xmlns="http://www.w3.org/2005/Atom">incorrect id format for 1234.12345</summary>
<updated xmlns="http://www.w3.org/2005/Atom">2007-10-12T00:00:00-04:00</updated>

<link xmlns="http://www.w3.org/2005/Atom" href="http://arxiv.org/api/errors#incorrect_id_format_for_1234.12345" rel="alternate" type="text/html"/>
<author xmlns="http://www.w3.org/2005/Atom">
<name xmlns="http://www.w3.org/2005/Atom">arXiv api core</name>
</author>
</entry>
</feed>

下面提供了一些常见的错误:

例子

Python

python2.7 上的简单请求:

1
2
3
4
import urllib
url = 'http://export.arxiv.org/api/query?search_query=all:electron&start=0&max_results=1'
data = urllib.urlopen(url).read()
print data

python3 上的请求:

1
2
3
4
import urllib.request as libreq
with libreq.urlopen('http://export.arxiv.org/api/query?search_query=all:electron&start=0&max_results=1') as url:
r = url.read()
print(r)

附录

查询的详细结构

在 arXiv 搜索引擎中,每篇文章都被划分为许多可以单独搜索的字段。 例如,可以搜索一篇文章的标题,以及作者列表、摘要、评论和期刊参考文献。 要搜索其中一个字段,只需在搜索词前加上字段前缀和冒号即可。 例如:

1
http://export.arxiv.org/api/query?search_query=au:del_maestro

下面的表格显示所有字段的前缀:

prefixexplanation
tiTitle
auAuthor
absAbstract
coComment
jrJournal Reference
catSubject Category
rnReport Number
idId (use id_list instead)
allAll of the above

并且查询也支持布尔运算,假设我们希望找到作者 Adrian DelMaestro 的所有文章,其标题中也包含单词 checkerboard。 我们可以使用 AND 操作符构造下面的查询:

1
http://export.arxiv.org/api/query?search_query=au:del_maestro+AND+ti:checkerboard

下面是三种可能的布尔值:

  • AND
  • OR
  • ANDNOT

下面是特殊符号的含义以及转义字符:

symbolencodingexplanation
( )%28 %29用于为布尔运算符优先级对布尔表达式进行分组
“ “%22 %22用于将多个单词组合成短语以搜索特定字段
空格+用于扩展search_query 包含多个字段

返回的详细结构

下表列出了返回的 Atom 结果的每个元素:

elementexplanation
feed elements
title包含规范化查询字符串的标题
id分配给此查询的唯一 id
updated最后一次更新此查询的搜索结果。 设置为当天的午夜
link通过 GET 请求检索此提要的 url
opensearch:totalResults此查询的搜索结果总数
opensearch:startIndex总结果列表中第一个返回结果的基于0的索引
opensearch:itemsPerPage每页返回的结果数
entry elements
title文章的标题
id文章的网址http://arxiv.org/abs/id
published文章的发布日期
updated文章的更新日期,如果为 v1 版本,那么与发布日期相同
summary文章摘要
author每个作者有一个子元素 name,包含了作者的名字
link可以给定与这篇文章关联的 3 个网址
category文章分类
arxiv:primary_category主要的 arXiv 分类
arxiv:comment作者对此发表的评论
arxiv:affiliation作者的从属关系
arxiv:journal_ref参考文献
arxiv:doi已解析的 DOI 的 url,指向外部资源

学科的分类

下面是学科分类字段以及对应的翻译(软件脚本自动翻译,如不对请勿喷):

字段学科(英文)学科(中文)
astro-phAstrophysics天体物理
astro-ph.COCosmology and Nongalactic Astrophysics宇宙学与非规则天体物理学
astro-ph.EPEarth and Planetary Astrophysics地球与行星天体物理学
astro-ph.GAAstrophysics of Galaxies星系的天体物理学
astro-ph.HEHigh Energy Astrophysical Phenomena高能天体物理现象
astro-ph.IMInstrumentation and Methods for Astrophysics天体物理学的仪器和方法
astro-ph.SRSolar and Stellar Astrophysics太阳与恒星天体物理学
cond-mat.dis-nnDisordered Systems and Neural Networks无序系统与神经网络
cond-mat.mes-hallMesoscale and Nanoscale Physics中尺度和纳米尺度物理学
cond-mat.mtrl-sciMaterials Science材料科学
cond-mat.otherOther Condensed Matter其他凝聚态
cond-mat.quant-gasQuantum Gases量子气体
cond-mat.softSoft Condensed Matter软凝聚物
cond-mat.stat-mechStatistical Mechanics统计力学
cond-mat.str-elStrongly Correlated Electrons强关联电子
cond-mat.supr-conSuperconductivity超导现象
cs.AIArtificial Intelligence人工智能
cs.ARHardware Architecture硬件架构
cs.CCComputational Complexity计算复杂性
cs.CEComputational Engineering, Finance, and Science计算工程,金融和科学
cs.CGComputational Geometry计算几何
cs.CLComputation and Language计算与语言
cs.CRCryptography and Security密码学与保安
cs.CVComputer Vision and Pattern Recognition计算机视觉与模式识别
CYComputers and Society电脑与社会
cs.DBDatabases数据库
cs.DCDistributed, Parallel, and Cluster Computing分布式、并行和集群计算
cs.DLDigital Libraries数字仓库
cs.DMDiscrete Mathematics离散数学
cs.DSData Structures and Algorithms数据结构和算法
cs.ETEmerging Technologies新兴科技
cs.FLFormal Languages and Automata Theory形式语言与自动机理论
cs.GLGeneral Literature一般文学
cs.GRGraphics图形
cs.GTComputer Science and Game Theory计算机科学与博弈论
cs.HCHuman-Computer Interaction人机交互
cs.IRInformation Retrieval信息检索
cs.ITInformation Theory信息理论
cs.LGLearning学习
cs.LOLogic in Computer Science计算机科学中的逻辑
cs.MAMultiagent Systems多代理系统
cs.MMMultimedia多媒体
cs.MSMathematical Software数学软件
cs.NANumerical Analysis数值分析
cs.NENeural and Evolutionary Computing神经和进化计算
cs.NINetworking and Internet Architecture网络与互联网架构
cs.OHOther Computer Science其他计算机科学
cs.OSOperating Systems操作系统
cs.PFPerformance性能
cs.PLProgramming Languages编程语言
cs.RORobotics机器人技术
cs.SCSymbolic Computation符号计算
cs.SDSound声音
cs.SESoftware Engineering软件工程
cs.SISocial and Information Networks社会和信息网络
cs.SYSystems and Control系统及控制
econ.EMEconometrics计量经济学
eess.ASAudio and Speech Processing音频及语音处理
eess.IVImage and Video Processing图像和视频处理
eess.SPSignal Processing信号处理
gr-qcGeneral Relativity and Quantum Cosmology广义相对论和量子宇宙学
hep-exHigh Energy Physics - Experiment高能物理实验
hep-latHigh Energy Physics - Lattice高能物理-晶格
hep-phHigh Energy Physics - Phenomenology高能物理-现象学
hep-thHigh Energy Physics - Theory高能物理理论
math.ACCommutative Algebra交换代数
math.AGAlgebraic Geometry代数几何
math.APAnalysis of PDEs偏微分方程分析
math.ATAlgebraic Topology代数拓扑
math.CAClassical Analysis and ODEs传统分析和微分方程
math.COCombinatorics组合数学
math.CTCategory Theory范畴理论
math.CVComplex Variables复杂变量
math.DGDifferential Geometry微分几何
math.DSDynamical Systems动力系统
math.FAFunctional Analysis功能分析
math.GMGeneral Mathematics普通数学
math.GNGeneral Topology点集拓扑学
math.GRGroup Theory群论
math.GTGeometric Topology几何拓扑学
math.HOHistory and Overview历史和概述
math.ITInformation Theory信息理论
math.KTK-Theory and HomologyK 理论与同调
math.LOLogic逻辑
math.MGMetric Geometry度量几何学
math.MPMathematical Physics数学物理
math.NANumerical Analysis数值分析
math.NTNumber Theory数论
math.OAOperator Algebras算子代数
math.OCOptimization and Control优化和控制
math.PRProbability概率
math.QAQuantum Algebra量子代数
math.RARings and Algebras环与代数
math.RTRepresentation Theory表示论
math.SGSymplectic Geometry辛几何
math.SPSpectral Theory光谱理论
math.STStatistics Theory统计学理论
math-phMathematical Physics数学物理
nlin.AOAdaptation and Self-Organizing Systems适应与自组织系统
nlin.CDChaotic Dynamics混沌动力学
nlin.CGCellular Automata and Lattice Gases元胞自动机与格子气体
nlin.PSPattern Formation and Solitons模式形成与孤子
nlin.SIExactly Solvable and Integrable Systems严格可解可积系统
nucl-exNuclear Experiment核试验
nucl-thNuclear Theory核理论
physics.acc-phAccelerator Physics加速器物理学
physics.ao-phAtmospheric and Oceanic Physics大气和海洋物理学
physics.app-phApplied Physics应用物理学
physics.atm-clusAtomic and Molecular Clusters原子和分子团簇
physics.atom-phAtomic Physics原子物理学
physics.bio-phBiological Physics生物物理学
physics.chem-phChemical Physics化学物理
physics.class-phClassical Physics经典物理学
physics.comp-phComputational Physics计算物理学
physics.data-anData Analysis, Statistics and Probability数据分析、统计和概率
physics.ed-phPhysics Education物理教育
physics.flu-dynFluid Dynamics流体动力学
physics.gen-phGeneral Physics普通物理
physics.geo-phGeophysics地球物理学
physics.hist-phHistory and Philosophy of Physics物理学的历史与哲学
physics.ins-detInstrumentation and Detectors仪器和探测器
physics.med-phMedical Physics医学物理学
physics.opticsOptics光学
physics.plasm-phPlasma Physics等离子体物理
physics.pop-phPopular Physics大众物理
physics.soc-phPhysics and Society物理学与社会
physics.space-phSpace Physics空间物理学
q-bio.BMBiomolecules生物分子
q-bio.CBCell Behavior细胞行为
q-bio.GNGenomics基因组学
q-bio.MNMolecular Networks分子网络
q-bio.NCNeurons and Cognition神经元与认知
q-bio.OTOther Quantitative Biology其他定量生物学
q-bio.PEPopulations and Evolution种群与进化
q-bio.QMQuantitative Methods定量方法
q-bio.SCSubcellular Processes亚细胞突起
q-bio.TOTissues and Organs组织和器官
q-fin.CPComputational Finance金融工程
q-fin.ECEconomics经济学
q-fin.GNGeneral Finance财务概述
q-fin.MFMathematical Finance数学金融
q-fin.PMPortfolio Management投资组合管理
q-fin.PRPricing of Securities证券定价
q-fin.RMRisk Management风险管理
q-fin.STStatistical Finance金融统计
q-fin.TRTrading and Market Microstructure交易与市场微观结构
quant-phQuantum Physics量子物理学
stat.APApplications应用
stat.COComputation计算
stat.MEMethodology方法论
stat.MLMachine Learning机器学习
stat.OTOther Statistics其他统计学
stat.THStatistics Theory统计学理论