Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中的URL列表上运行html解析函数_Html_R_Xml_Web Scraping_Supervised Learning - Fatal编程技术网

在R中的URL列表上运行html解析函数

在R中的URL列表上运行html解析函数,html,r,xml,web-scraping,supervised-learning,Html,R,Xml,Web Scraping,Supervised Learning,因此,我有一个新闻文章URL的列表/df,我从一个地方政府机构的“新闻档案”中刮取了这些URL,总共大约5000个。我已经编写了以下函数,使用rvest获取文章的标题、正文和发布日期,现在我将包括以下内容: get_title <- function(url){ html <- read_html(url) html %>% rvest::html_nodes('body') %>% xml2::xml_find_first("//div[c

因此,我有一个新闻文章URL的列表/df,我从一个地方政府机构的“新闻档案”中刮取了这些URL,总共大约5000个。我已经编写了以下函数,使用rvest获取文章的标题、正文和发布日期,现在我将包括以下内容:

get_title <- function(url){

  html <- read_html(url)

  html %>%
    rvest::html_nodes('body') %>% 
    xml2::xml_find_first("//div[contains(@class, 'page-header col-xs-12')]") %>% 
    rvest::html_text()
}

get_text <- function(html){
  html %>% 
    rvest::html_nodes('body') %>% 
    xml2::xml_find_all("//div[contains(@class, 'col-xs-12 text-content')]") %>% 
    rvest::html_text()
}

get_date <- function(text){
  substr(text, 14, 21)
}

获取标题%
xml2::xml_find_first(“//div[contains(@class,'page header col-xs-12')]”)%>%
rvest::html_text()
}
获取文本%
rvest::html_节点('body')%>%
xml2::xml_find_all(“//div[contains(@class,'col-xs-12 text content')]”)%>%
rvest::html_text()
}

get_date您可以将三个函数的结果导出为一个列表,并使用
dplyr::bind_rows
将它们组合成一个TIBLE:

库(rvest)
图书馆(dplyr)
#示例url列表:
url1标题文本日期
#>                                                                  
#>1“\n\n…”\n 19.03.20\nRundet s…19.03…
#>2“\n\n…”\n 2020年3月19日\n在…19.03…

非常感谢您!这真的很有帮助。我发现我愚蠢地没有正确地将URL的df转换为列表,所以我开始尝试在列表的子列表上运行代码。。。
df_of_urls <- df_of_urls %>% mutate(title = get_title(df_of_urls$x))

get_title(list_of_urls)