首页 > 解决方案 > 通过导航 doPostBack 使用 R 抓取网站以获取数据库定价网站

问题描述

我正在尝试在使用 __doPostBack 的 ASPX 网页上提取有关大型医疗保健数据库定价的信息。我对州数据库(不是默认的全国数据库)的价格特别感兴趣。我正在尝试在 R 中使用 rvest。

具体定价页面位于:https ://www.distributor.hcup-us.ahrq.gov/Databases.aspx

我试图在 stackoverflow 上使用现有的解决方案(见下面的代码),我可能缺少一些基本的东西。

sesh<-html_session("https://www.distributor.hcup-us.ahrq.gov/Databases.aspx")
form<-html_form(sesh)[[1]]
query<-list(`lng`="en-US",
            `__VIEWSTATEGENERATOR`=form$fields$`__VIEWSTATEGENERATOR`$value,
            `__VIEWSTATE`=form$fields$`__VIEWSTATE`$value,
            `__EVENTTARGET`="p$lt$SubContentHome$PlaceHolderHome$p$lt$zoneMain$ProductGridSearch$ddlCategory",
            `__EVENTARGUMENT`="State")
page<-rvest:::request_POST(sesh,"https://www.distributor.hcup-us.ahrq.gov/Databases.aspx",
                           body=query,encode="form")
page<-read_html(page)
tbls <- html_nodes(page, "table")
head(html_table(tbls[[6]],fill=T,header=T),10)[,2]

我希望输出显示全州数据库的名称,但它列出了导航到页面时默认显示的全国数据库的名称。

标签: asp.netrweb-scrapingrvestdopostback

解决方案


推荐阅读