我正在尝试使用R中的Selenium包来抓取以下页面:http://www.wbsec.gov.in/(S(njkinc55hbv2hw55xksxdv45))/DetailedResult/Detailed_gp.aspx。我对所选下拉列表的所有组合感兴趣,但一直在获取
Couldnt connect to host on http://localhost:4444/wd/hub.Please ensure a Selenium server is running.
Error in queryRD(paste0(serverURL, "/session"), "POST", qdata = toJSON(serverOpts)) :
library(RSelenium)
library(XML)
library(magrittr)
checkForServer()
startServer()
remDrv<-remoteDriver()
remDrv$open()
remDrv$navigate("http://www.wbsec.gov.in/(S(njkinc55hbv2hw55xksxdv45))/DetailedResult/Detailed_gp.aspx")
如有任何帮助,我们将不胜感激。
使用burpsuite等中介来捕捉正在发生的事情,并将结果与rvest
的html_session
和/或httr
的POST
结合使用。
在这种情况下,你会看到你的原始URL包含初始的<select>
菜单,你还会看到选择一个会向发出POST
http://www.wbsec.gov.in/(S(njkinc55hbv2hw55xksxdv45))/DetailedResult/Detailed_gp.aspx
原始形式元素中有许多隐藏变量以及ddldistrict
、ddlblock
和ddlgp
。响应包含随后的<select>
菜单选项。
使用rvest
获取每个下拉列表的value
属性,并对Detailed_gp.aspx
URL进行后续POST
,直到获得所有组合。
您可能会得到Selenium的答案,但这个问题只需要发布到表单,这是httr
和rvest
擅长的。
您似乎没有正确设置Selenium。确保您已经下载了Selenium并在R中加载了R Selenium。此链接可能会有所帮助。
一旦Selenium设置正确,您所要做的就是找到css选择器(selectorgaget是一个很好的工具),并将所需的信息发送到下拉列表,抓取网站并重复。我会做三次下降。