首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于名称信息检索Google学者ID

基于名称信息检索Google学者ID
EN

Stack Overflow用户
提问于 2017-10-31 11:47:03
回答 2查看 892关注 0票数 2

我是一名经济学研究生,目前正在从事一个涉及谷歌学者的研究项目。虽然经济学家通常使用Stata,但通过R可以更容易地访问Google学者,因此在过去的一周里,我一直在学习R是如何工作的。不用说,我是个初学者,有很多事情我并不真正理解。

我设法在网上收集了一份经济学家名单,并从这份名单中随机抽取了一个样本。现在我想了解一些关于这些学者的谷歌学者信息。为此,我计划使用图书馆的“学者”。

我的问题是,“学者”要求谷歌学者的ID。我只知道经济学家的名字,所以我想取回他们的身份证。

我基本上想为每个经济学家做一个谷歌学者查询:sdt=0%2C5&q=“经济学家的名字”,并在html代码中找到谷歌学者ID。

我试着与经济学家伊曼纽尔·萨伊兹(Emmanuel)合作起步:sdt=0%2C5&q=Emmanuel+Saez&btnG=

相关的css节点是:".gs_rt2",所以我的代码如下所示:

代码语言:javascript
复制
page <- read_html("https://scholar.google.fr/scholar?hl=fr&as_sdt=0%2C5&q=Emmanuel+Saez&btnG=")
text <- html_nodes(page, ".gs_rt2")

对象"text“看起来是这样的:

代码语言:javascript
复制
[1] <h4 class="gs_rt2"><a href="/citations?user=qZpr_CQAAAAJ&amp;hl=fr&amp;oe=ASCII&amp;oi=ao"><b...

我只是遗漏了最后一部分:如何告诉R在"user=“之后选择12字符的代码?

这肯定很明显,但我就是想不出该怎么做。如果有人能帮我,那就太好了。

谢谢,G. Gauthier

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-31 11:52:16

最简单的方法可能是正则表达式。类似于:

代码语言:javascript
复制
user_code <- sub(".*user=([A-Za-z_]+)&.*", "\\1", text)

其中“1”是对括号中的内容的反向引用。尝试?regexp?sub来了解更多信息。

票数 2
EN

Stack Overflow用户

发布于 2019-10-13 03:35:06

也许遗漏了一些东西,但是为了获得id,只使用strsplit可能更简单

代码语言:javascript
复制
gsid <- strsplit(as.character(text),"(user=)|&")[[1]][2]

这将从文本中返回(与上面相同)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47034638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档