gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 02:24:44 35 4
gpt4 key购买 nike

我正在使用 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",
page_numbers,
sep = "="
)

现在遍历每一页,抓取每一页。使用 for 循环还是 *apply 函数并不重要。参见,例如 R Inferno 的第 4 圈(pdf) 讨论“for”循环和“lapply”之间的区别。

关于xml - 如何使用 XML 和 ReadHTMLTable 抓取多个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774991/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com