【发布时间】:2017-12-24 05:46:53
【问题描述】:
我正在开发一个网络抓取程序,以从多个工作表中搜索数据。下面的代码是我正在使用的示例。我只能得到第一张纸。如果有人能指出我的语法哪里出错了,那将是非常有帮助的。
jump <- seq(1, 10, by = 1)
site <- paste0("https://stackoverflow.com/search?page=",jump,"&tab=Relevance&q=%5bazure%5d%20free%20tier")
dflist <- lapply(site, function(i) {
webpage <- read_html(i)
draft_table <- html_nodes(webpage,'.excerpt')
draft <- html_text(draft_table)
})
finaldf <- do.call(cbind, dflist)
finaldf_10<-data.frame(finaldf)
View(finaldf_10)
下面是我需要从中抓取数据的链接 127 页。
[https://stackoverflow.com/search?q=%5Bazure%5D+free+tier][1]
根据上面的代码,我只能从第一页获取数据,而不能从其余页面获取数据。也没有语法错误。你能帮我找出我哪里出错了。
【问题讨论】:
-
您不需要使用
do.call(rbind, dflist)代替do.call(cbind, dflist)吗?此外,最好包含对问题的描述(根据您的说法)并包含可能的错误消息或不正确的输出。 -
类似问题的一个例子:stackoverflow.com/questions/40525661/…
-
@Jaap 问题在 dflist 循环中
-
我认为您需要在
dflist中添加额外的一行:return(draft)(或只是draft) -
我已按照您的建议添加了 return(darft)。请参阅下面的修改后的代码,但我仍然没有得到输出。请建议。 dflist
标签: r web-scraping lapply rvest