【发布时间】:2019-03-08 13:27:09
【问题描述】:
使用 R,我想获取引用科学期刊论文的文章列表。
我拥有的唯一信息是文章的标题,例如"叶绿素酚试剂测定蛋白质"。
是否有人可以通过制作一个我可以使用的可复制示例来帮助我?
这是我目前尝试过的。
R 包fulltext 似乎很有用,因为它允许检索链接到文章的 ID 列表。例如,我可以获取文章的 DOI:
library(fulltext)
res1 <- ft_search(query = "Protein measurement with the folin phenol reagent", from = "crossref")
res1 <- ft_links(res1)
res1$crossref$ids
同样,我可以通过在函数fulltext::ft_search 中设置from = "scopus"(并包含一个scopus API 密钥)来获取scopus id。
如果使用DOI,我可以使用R库rcrossref获取文章的引用次数:
rcrossref::cr_citation_count(res1$crossref$ids[1])
同样,如果我想使用 scopus id 而不是 DOI,我可以使用 R 包 rscopus。
不幸的是,这些信息对我来说是不够的,因为我需要引用该论文的文章列表,而不是数量。
我在网上看到很多人使用scholar这个包。但是,如果我理解正确的话,我需要文章的作者拥有一个谷歌学者 ID,并且我必须找到一种方法来检索这个 ID。所以它看起来不是一个可行的解决方案。
有人知道如何解决这个问题吗?
【问题讨论】:
-
一个有趣的问题。你见过RCrawler吗?爬取网页并不是一件难事,因为您可以使用
xpath/css来提取这些代码中插入的数据。但是,期刊论文的全文是pdf格式。因此,您需要弄清楚如何从在线 pdf 文件中提取数据。 -
这意味着很多事情:i) 找到发表文章的期刊的网站,ii) 通过访问期刊网站获取文章,iii) 获得访问期刊的凭据网站,iv)下载pdf并抓取它。不确定这是正确的方法,除非我遗漏了什么。
-
第 i、ii 部分可通过任何爬虫功能实现。仅当您拥有访问网站的有效凭据时,第三部分才可行。如果不是,它的黑客攻击,我认为像 SO 这样的论坛不适合它。第四部分,python 是你最好的选择。看到这个link
-
@Ashish,这是一个关于 R 的特定问题,而不是 python。即使您可以使用爬虫功能,这看起来也不适合该任务。您不想使用已经汇总所有期刊来源的标准工具(例如谷歌学者),而是希望从头开始创建新来源。你让事情变得更加复杂。
-
@Ashish,请记住这里不适合黑客。在 SO 上,如果您说您需要凭据,那只能意味着购买有效的访问权限。由于很难指望某人能够有效访问所有期刊网站,这就是为什么我说这个解决方案不是一个合理的解决方案。请避免在虚假指控上浪费时间,让我们坚持这个问题。
标签: r web-scraping citations google-scholar scopus