文章目录
- 简介
- Search类
- query语法
简介
arxiv大家都知道,作为著名赛博活佛,它提供给了API工具,可以根据链接来定制化搜索内容,比如我想搜索optics方面最近上传的10篇文章,那么直接在地址栏中输入下面链接即可,浏览器会返回一个xml文件。
http://export.arxiv.org/api/query?search_query=ti:"optics"&max_results=10&sortBy=submittedDate&sortOrder=descending伯克利一老哥Lukas Schwab对此做了Python封装,从而可以更便捷地查阅arxiv中的文章。尽管这个库名字就叫arxiv,但为了和arxiv网站做区分,后文称之为pyarxiv。
pipinstallarxiv-ihttps://pypi.tuna.tsinghua.edu.cn/simple同样实现上述功能,其Python代码如下
importarxiv client=arxiv.Client()# 搜索10篇optics最近请求的文章search=arxiv.Search(query="optics",max_results=10,sort_by=arxiv.SortCriterion.SubmittedDate)res=client.results(search)# results是个生成器,可以迭代forrinclient.results(search):print(r.title)# 也可以转为列表,这样更方便resList=list(res)forrinresList:print(r.title)需要注意,arXiv官方强烈建议每次请求之间至少间隔 3 秒。如果频繁发送请求,当心IP被暂时封禁。
Search类
【Search】是pyarxiv中的核心类,其可选的初始化参数包括
| 参数 | 类别 | 默认值 | 说明 |
|---|---|---|---|
| query | 字符串 | 空字符串 | 搜索内容 |
| id_list | 字符串列表 | None | arxiv文章id的列表 |
| max_results | 整型 | 100 | 返回结果数 |
| sort_by | SortCriterion | SortCriterion.Relevance | 排序方法,默认是相关度 |
| sort_order | SortOrder | SortOrder.Descending | 排序顺序 |
【SortCriterion】可选Relevance, LastUpdateDate, SubmittedDate。【SortOrder】可选Descending和Ascending。
query语法
Search的query参数,遵循了arxiv的API的语法设计,本质上是多个搜索内容的逻辑组合,其基本查询格式是前缀:搜索词,如果不加前缀,则默认all:搜索词,前面那个案例中,输入optics,等价于all:optics。
arxiv API支持的前缀如下
| 前缀 | 含义 | 示例 |
|---|---|---|
| ti | 标题 (Title) | ti:transformer |
| au | 作者 (Author) | au:hinton |
| abs | 摘要 (Abstract) | abs:reinforcement learning |
| cat | 分类 (Category) | cat:cs.AI (必须精确匹配分类代码) |
| co | 注释 (Comment) | co:accepted to CVPR |
| jr | 期刊引用 (Journal Reference) | jr:Nature |
| rn | 报告编号 (Report Number) | rn:12345 |
| id | arXiv ID | id:2310.12345 |
| all | 所有上述字段 (默认) | all:quantum |
可用的逻辑运算符包括
- 【AND】与运算,同时满足多个条件
- 【OR】或运算,满足其中一个条件
- 【ADDNOT】差运算,满足前面的条件,但排除后面的条件
分类代码在这查:分类代码,一些常用代码如下
- 💻计算机科学 (Computer Science, cs)
- cs.AI : 人工智能 (Artificial Intelligence)
- cs.CL : 计算与语言 (Computation and Language / NLP)
- cs.CV : 计算机视觉与模式识别 (Computer Vision and Pattern Recognition)
- cs.LG : 机器学习 (Machine Learning)
- cs.RO : 机器人学 (Robotics)
- cs.CR : 密码学与安全 (Cryptography and Security)
- cs.SE : 软件工程 (Software Engineering)
- 📐 数学 (Mathematics, math)
- math.OC : 优化与控制 (Optimization and Control)
- math.ST : 统计学理论 (Statistics Theory)
- math.PR : 概率论 (Probability)
- math.AP : 分析中的偏微分方程 (Analysis of PDEs)
- ⚛️ 物理学 (Physics, physics & High Energy Physics, hep)
- hep-th : 高能物理-理论 (High Energy Physics - Theory)
- hep-ph : 高能物理-现象学 (High Energy Physics - Phenomenology)
- hep-ex : 高能物理-实验 (High Energy Physics - Experiment)
- physics.optics : 光学 (Optics)
- physics.comp-ph : 计算物理 (Computational Physics)