r - 在 R 语言中找不到对象
问题描述
我是使用 R 的新手,这是我尝试玩一轮代码以从多个页面中抓取引号
# Load Libraries
library(rvest) # To Scrape
library(tidyverse) # To Manipulate Data
# Scrape Multiple Pages
for (i in 1:4){
site_to_scrape <- read_html(paste0("http://quotes.toscrape.com/page/",i))
temp <- site_to_scrape html_nodes(".text") html_text()
content <- append(content, temp)
}
#Export Results To CSV File
write.csv(content, file = "content.csv", row.names = FALSE)
我遇到了Object not found
内容变量的错误。如何克服此错误并设置对象以便在附加行中可重用?
解决方案
如果您要抓取许多页面,则循环中的增长向量非常低效。相反,您应该做的是初始化一个您事先知道的具有特定长度的列表。
library(rvest)
n <- 4
content = vector('list', n)
# Scrape Multiple Pages
for (i in 1:n){
site_to_scrape <- read_html(paste0("http://quotes.toscrape.com/page/",i))
content[[i]] <- site_to_scrape %>%
html_nodes(".text") %>%
html_text()
}
write.csv(unlist(content), file = "content.csv", row.names = FALSE)
另一个不初始化的选项是使用sapply
/ lapply
:
all_urls <- paste0("http://quotes.toscrape.com/page/",1:4)
content <- unlist(lapply(all_urls, function(x)
x %>% read_html %>% html_nodes(".text") %>% html_text()))
推荐阅读
- html - ionic 4 离子选择选项文本换行
- javascript - 如何在 HTML5 中添加“iframe”作为背景
- asp.net-mvc - 运行 VS2017 项目时我的浏览器找不到 localhost 并显示“无法访问此页面”
- java - 如何使用 CyclingBarrier 同步线程并保持它们的执行顺序?
- actionscript-3 - 未找到 Animate Actionscript 3.0 场景,但存在场景
- c++ - 在与父进程相同的监视器上运行进程
- javascript - 如何使几种形式成为一种形式?
- java - 如何检查某个单词是否包含在文本文件中?
- java - 画布双缓冲图形不起作用
- performance - 如何在不存储大量数据的情况下生成性能指标?(分位数流)