如何使用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’之间的区别. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |