有没有办法以编程方式访问CiteSeerX(例如按作者和/或标题搜索?)令人惊讶的是,我找不到任何相关内容;当然,其他人也在试图获取学术文章的元数据而不求助于抓取吗?
编辑:请注意,CiteSeerX supports OAI PMH,但这似乎是面向数字图书馆的API,它们相互之间保持最新(“内容传播”),并且不专门支持搜索。此外,该页面上的引语信息非常稀疏,甚至显示“当前,OAI存在困难”。
关于CiteSeerX API有another SO问题(尽管不是专门搜索);这两个答案不能解决问题(一个人谈论Mendeley,另一软件,另一个人说OAI-PMH实现可以自由提供对最低规范的扩展)。
或者,有人可以建议一种以编程方式从作者/书名中获取引用的好方法吗?
最佳答案
根据一位评论者的建议,我首先尝试了jabref:
但是,jabref似乎没有意识到查询字符串需要包含冒号,因此会引发错误。
对于搜索结果,我最终使用Python的BeautifulSoup抓取了CiteSeerX结果:
url = "http://citeseerx.ist.psu.edu/search?q="
q = "title%3A%28{1}%29+author%3%28{0}%29&submit=Search&sort=cite&t=doc"
url += q.format (author_last, title.replace (" ", "+"))
soup = BeautifulSoup (urllib2.urlopen (url).read ())
result = soup.html.body ("div", id = "result_list") [0].div
title = result.h3.a.string.strip ()
authors = result ("span", "authors") [0].string
authors = authors [len ("by "):].strip ()
date = result ("span", "pubyear") [0].string.strip (", ")
可以从结果中获取文档ID(在摘要链接URL中误称为“doi = ...”部分),然后将其传递给CiteSeerX OAI引擎以获取Dublin Core XML(例如http://citeseerx.ist.psu.edu/oai2?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:CiteSeerX.psu:10.1.1.42.2177);但是,该XML最终包含多个dc:date元素,这使其比scrape输出有用。
糟糕的CiteSeerX使得人们尽管采用了所有开放的文件/开放获取的措辞,但还是不得不进行抓取。
关于api - citeseerx搜索API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14085383/