加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用XML和ReadHTMLTable抓取多个页面?

发布时间:2020-12-16 07:57:44 所属栏目:百科 来源:网络整理
导读:我正在使用XML包将芝加哥马拉松的结果刮成CSV.问题是该网站只能在一个页面上显示1,000个跑步者,所以我必须刮掉多个页面.我到目前为止编写的脚本适用于第一页: rm(list=ls())library(XML)page_numbers - 1:1429urls - paste("http://results.public.chicagom
我正在使用XML包将芝加哥马拉松的结果刮成CSV.问题是该网站只能在一个页面上显示1,000个跑步者,所以我必须刮掉多个页面.我到目前为止编写的脚本适用于第一页:
rm(list=ls())

library(XML)

page_numbers <- 1:1429
urls <- paste(
"http://results.public.chicagomarathon.com/2011/index.php?page",page_numbers,sep = "="
)

tables <-(for i in page_numbers){
readHTMLTable(urls)
}
n.rows <- unlist(lapply(tables,function(t) dim(t)[1]))

times <- tables[[which.max(n.rows)]]

如何使用此代码刮取所有21页以获得完整的结果.我应该使用for()循环还是lapply函数或其他东西,我在这里有点迷失.

谢谢!

将页码添加到每个URL.
page_numbers <- 1:1429
urls <- paste(
  "http://results.public.chicagomarathon.com/2011/index.php?pid=list&page",sep = "="
)

现在遍历每个页面,抓取每个页面.使用for循环或* apply函数并不重要.参见例如R Inferno的圆圈4(pdf),以讨论’for’循环和’lapply’之间的区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读