arxiv api的python包装:http://arxiv.org/help/api/

arxiv的Python项目详细描述


< H1> ARXIV.PY^ {A1}^ {A2}

the arXiv API的python包装器。

关于arxiv

arXiv是康奈尔大学图书馆(cornell university library)的一个项目,提供了100多万篇物理、数学、计算机科学、定量生物学、定量金融和统计方面的文章的开放访问。

用法

安装

$ pip install arxiv

用确认安装

$ python setup.py test

在python脚本中,包括该行

importarxiv

查询

arxiv.query(query="",id_list=[],max_results=None,start=0,sort_by="relevance",sort_order="descending",prune=True,iterative=False,max_chunk_results=1000)
ArgumentTypeDefault
^{}string^{}
^{}list of strings^{}
^{}int10
^{}int0
^{}string^{}
^{}string^{}
^{}boolean^{}
^{}boolean^{}
^{}int1000
  • query:arxiv查询字符串。格式文档here

    • 注意:多字段查询必须用空格分隔。au:balents_leon AND cat:cond-mat.str-el有效;au:balents_leon+AND+cat:cond-mat.str-el无效。
  • id_list:arxiv记录id的列表(通常采用"0710.5765v1"格式)。

  • >:查询返回的最大结果数。

  • start:arxiv查询结果中第一个返回对象的偏移量。

  • sort_by:对结果进行排序的arXiv字段

  • sort_order:排序顺序,即“升序”、“降序”或“无”。

  • prune:当True时,接收的抽象对象将被简化

  • iterative:当True时,query()将返回迭代器。否则,query()在内部迭代并返回结果的完整列表。

  • {由一个内部请求检索到的API的最大数量摘要。

查询示例:

importarxiv# Keyword queriesarxiv.query(query="quantum",max_results=100)# Multi-field queriesarxiv.query(query="au:balents_leon AND cat:cond-mat.str-el")# Get single record by IDarxiv.query(id_list=["1707.08567"])# Get multiple records by IDarxiv.query(id_list=["1707.08567","1707.08567"])# Get interator over query resultsresult=arxiv.query(query="quantum",max_chunk_results=10,iterative=True)forpaperinresult():print(paper)

有关queryid_list之间交互的更详细描述,请参见this section of the arXiv documentation

下载文章pdf

arxiv.download(obj,dirpath="./",slugify=arxiv.slugify)
ArgumentTypeDefaultRequired?
^{}dictN/AYes
^{}string^{}No
^{}function^{}No
  • obj是一个结果对象,是query()返回的列表之一obj必须至少包含对应于pdf_urltitle的值

  • dirpath是下载的pdf将保存到的相对目录路径。默认为当前工作目录。

  • slugify是将obj处理为文件名的函数。默认情况下,arxiv.download(obj)将对象ID前置到对象标题

importarxiv# Query for a paper of interest, then downloadpaper=arxiv.query(id_list=["1707.08567"])[0]arxiv.download(paper)# You can skip the query step if you have the paper info!paper2={"pdf_url":"http://arxiv.org/pdf/1707.08567v1","title":"The Paper Title"}arxiv.download(paper2)# Returns the object iddefcustom_slugify(obj):returnobj.get('id').split('/')[-1]# Download with a specified slugifier functionarxiv.download(paper,slugify=custom_slugify)

贡献者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java列排序不会忽略大写字母   JFrame中的JavaFX菜单   java My Freemarker无法将对象传递给模板   java SOAP API客户端请求创建问题addChildElement(org.w3c.dom.domeException:NAMESPACE\u ERR)   java双精度值不能转换为布尔值   java如何在JBOSS EAP 6.3中在一个安全域中配置多个登录模块?   datetime如何使用Java ZoneId。systemDefault()如果我的计算机未连接到Internet,是否知道时区?   java PlayFramework应用ClassLoader的演变   java正在向JPanel添加元素,但它们没有显示   java如何使异步侦听器执行阻塞?   json如何让JAXRS将Java8LocalDateTime属性作为JavaScriptstyle日期字符串返回?   java我可以构建一个ApacheAnt任务并在同一步中执行它吗?   java如何使用用户输入的字符串编码到程序中,并确保其中包含小数?   使用ArrayList的java ArrayAdapter   java Hibernate 5。x迁移建议脚本   使用wait()和notify()的java控制线程   SpringMVC在Java中通过jsp显示列表的问题   java如何设置Jsoup读取的数据编码?   java 安卓 AlertDialog显示两次