Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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
Html 使用rvest刮取多个URL_Html_R_Screen Scraping_Rvest - Fatal编程技术网

Html 使用rvest刮取多个URL

Html 使用rvest刮取多个URL,html,r,screen-scraping,rvest,Html,R,Screen Scraping,Rvest,使用rvest中的read_html时,如何刮取多个URL?目标是从各个URL获得一个由文本体组成的文档,在该文档上运行各种分析 我尝试连接URL: url <- c("https://www.vox.com/","https://www.cnn.com/") page <-read_html(url) page story <- page %>% html_nodes("p") %>% html_text

使用
rvest
中的
read_html
时,如何刮取多个URL?目标是从各个URL获得一个由文本体组成的文档,在该文档上运行各种分析

我尝试连接URL:

 url <- c("https://www.vox.com/","https://www.cnn.com/")
   page <-read_html(url)
   page
   story <- page %>%
        html_nodes("p") %>%  
        html_text

这并不奇怪,因为
read_html
一次可能只处理一条路径。但是,我是否可以使用不同的函数或转换,以便同时刮取多个页面?

您可以使用
map
(或在base R:
lappy
)循环遍历每个
url
元素;这里有一个例子

url%html\u text())
str(第页)
#2人名单
#$:chr[1:22]“但他因面临两项最严重的指控而被无罪释放。”“卫生专家说,是时候为在世界各大洲的传播做好准备了。”“华尔街正在意识到冠状病毒的威胁,因为人们担心这种疾病及其潜在的全球经济。”约翰逊于周一去世,享年101岁。他在帮助宇航员安全返回地球方面做了开创性的工作。。。
#$:chr[1:19]“”“\n这位前电影大亨戴着手铐,从“27°C”。。。
返回对象是一个
列表


另外,我更改了第二个
url
元素,因为
“https://www.cnn.com/“
返回
NULL
用于
html\u节点(“p”)%%>%html\u text()

谢谢@Maurits Evers-这非常有用!map函数在运行“Purrr”后工作。但我在运行某些URL时也遇到问题。我得到:character(0)在各种URL上运行“html_节点”时。我想知道是否有选择器问题。我想知道如何设置html_节点以捕获所有选择器类并返回文本?@AnneBoysen这似乎是一个不同的问题,您可能希望在新帖子中提出。我建议通过在答案旁边设置绿色复选标记来结束此问题;然后用清晰的问题陈述打开一个新问题。很高兴看一看。
 Error in doc_parse_file(con, encoding = encoding, as_html = as_html, options = options) : 
 Expecting a single string value: [type=character; extent=3].