gpt4 book ai didi

r - 使用 r 导航和抓取带有下拉 html 表单的网页

转载 作者:行者123 更新时间:2023-12-04 12:32:37 25 4
gpt4 key购买 nike

我正在尝试从 http://www.footballoutsiders.com/stats/snapcounts 中抓取数据,但我无法更改网站下拉框中的字段(“团队”、“周”、“职位”和“年份”)。我试图用 rvest 抓取与 team = "ALL", week = "1", pos = "All", and year = "2015"相关的表格如下。

url <- "http://www.footballoutsiders.com/stats/snapcounts"
pgsession <- html_session(url)
pgform <-html_form(pgsession)[[3]]
filled_form <-set_values(pgform,
"team" = "ALL",
"week" = "1",
"pos" = "ALL",
"year" = "2015"
)

submit_form(session=pgsession,form=filled_form, POST=url)

y <- read_html("http://www.footballoutsiders.com/stats/snapcounts")

y <- y %>%
html_nodes("table") %>%
.[[2]] %>%
html_table(header=TRUE)

此代码返回与下拉框中的默认变量相关联的表,即 team = "ALL"、week = "20"、pos = "QB"和 year = "2015",这是一个仅包含 11 个观测值的数据框。如果它真的改变了字段,它会返回一个包含 1,695 个观测值的数据框。

最佳答案

您可以捕获提交表单时生成的 session ,并将该 session 用作 html_nodes 的输入。 :

d <- submit_form(session=pgsession, form=filled_form)

y <- d %>%
html_nodes("table") %>%
.[[2]] %>%
html_table(header=TRUE)

dim(y)
#[1] 1695 11

否则,如果您使用 read_html(url)您正在阅读原始页面。

关于r - 使用 r 导航和抓取带有下拉 html 表单的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257579/

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