R:LinkedIn使用rvest进行抓取

R:LinkedIn使用rvest进行抓取,r,web-scraping,rvest,R,Web Scraping,Rvest,使用rvest包,我试图从我的数据库中刮取数据 这些努力: library(rvest) url = "https://www.linkedin.com/profile/view?id=AAIAAAFqgUsBB2262LNIUKpTcr0cF_ekoX9ZJh0&trk=nav_responsive_tab_profile" li = read_html(url) html_nodes(li, "#experience-316254584-view span.field-text")

使用
rvest
包,我试图从我的数据库中刮取数据

这些努力:

library(rvest)
url = "https://www.linkedin.com/profile/view?id=AAIAAAFqgUsBB2262LNIUKpTcr0cF_ekoX9ZJh0&trk=nav_responsive_tab_profile"
li = read_html(url)
html_nodes(li, "#experience-316254584-view span.field-text")
html_nodes(li, xpath='//*[@id="experience-610617015-view"]/p/span/text()')
找不到任何节点:

#> {xml_nodeset (0)}
问:如何只返回文本

#> "Quantitative hedge fund manager selection for $650m portfolio of alternative investments"

编辑:

LinkedIn有一个API,但出于某种原因,下面只返回前两个职位的经验,没有其他项目(如教育、项目)。因此采用了刮削法

library("Rlinkedin")
auth = inOAuth(application_name, consumer_key, consumer_secret)
getProfile(auth, connections = FALSE, id = NULL) # returns very limited data

你让事情变得不必要的困难。。。您只需在从Linkedin获得OAuth 2.0令牌后向发出GET请求。在R中,可以使用以下方法执行此操作:

library(jsonlite)

linkedin
html\u text
但是linkedin也有一个API,所以你真的不必刮。这可能是一个注释我已经包括了API try,它返回有限的数据。因此刮擦。
library(jsonlite)
linkedin <- fromJSON('https://api.linkedin.com/v1/people/~?format=json')
position <- linkedin$headline