Html 解析用rvest刮取的谷歌学者搜索结果
我试图使用Html 解析用rvest刮取的谷歌学者搜索结果,html,r,rvest,stringr,xml2,Html,R,Rvest,Stringr,Xml2,我试图使用rvest将谷歌学者搜索结果的一页刮到作者、论文标题、年份和期刊标题的数据框中 下面这个简化的、可复制的例子是搜索Google Scholar的“顶点捕食者保护”的代码 注意:为了遵守服务条款,我只想处理手动搜索的第一页搜索结果。我不是在问自动化问题,以刮除额外的页面 以下代码已用于提取: 作者 论文标题 年 但它没有: 期刊名称 我想提取日志标题并将其添加到输出中 library(rvest) library(xml2) library(selectr) library(st
rvest
将谷歌学者搜索结果的一页刮到作者、论文标题、年份和期刊标题的数据框中
下面这个简化的、可复制的例子是搜索Google Scholar的“顶点捕食者保护”的代码
注意:为了遵守服务条款,我只想处理手动搜索的第一页搜索结果。我不是在问自动化问题,以刮除额外的页面
以下代码已用于提取:
- 作者
- 论文标题
- 年
- 期刊名称
library(rvest)
library(xml2)
library(selectr)
library(stringr)
library(jsonlite)
url_name <- 'https://scholar.google.com/scholar?hl=en&as_sdt=0%2C38&q=apex+predator+conservation&btnG=&oq=apex+predator+c'
wp <- xml2::read_html(url_name)
# Extract raw data
titles <- rvest::html_text(rvest::html_nodes(wp, '.gs_rt'))
authors_years <- rvest::html_text(rvest::html_nodes(wp, '.gs_a'))
# Process data
authors <- gsub('^(.*?)\\W+-\\W+.*', '\\1', authors_years, perl = TRUE)
years <- gsub('^.*(\\d{4}).*', '\\1', authors_years, perl = TRUE)
# Make data frame
df <- data.frame(titles = titles, authors = authors, years = years, stringsAsFactors = FALSE)
df
两个问题:
添加它们的一种方法是:
library(rvest)
library(xml2)
library(selectr)
library(stringr)
library(jsonlite)
url_name <- 'https://scholar.google.com/scholar?hl=en&as_sdt=0%2C38&q=apex+predator+conservation&btnG=&oq=apex+predator+c'
wp <- xml2::read_html(url_name)
# Extract raw data
titles <- rvest::html_text(rvest::html_nodes(wp, '.gs_rt'))
authors_years <- rvest::html_text(rvest::html_nodes(wp, '.gs_a'))
# Process data
authors <- gsub('^(.*?)\\W+-\\W+.*', '\\1', authors_years, perl = TRUE)
years <- gsub('^.*(\\d{4}).*', '\\1', authors_years, perl = TRUE)
leftovers <- authors_years %>%
str_remove_all(authors) %>%
str_remove_all(years)
journals <- str_split(leftovers, "-") %>%
map_chr(2) %>%
str_extract_all("[:alpha:]*") %>%
map(function(x) x[x != ""]) %>%
map(~paste(., collapse = " ")) %>%
unlist()
# Make data frame
df <- data.frame(titles = titles, authors = authors, years = years, journals = journals, stringsAsFactors = FALSE)
库(rvest)
库(xml2)
图书馆(选择器)
图书馆(stringr)
图书馆(jsonlite)
url\u名称