我正在尝试使用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")
任何帮助都将不胜感激。
答案 0 :(得分:2)
使用burpsuite等中间人来捕捉正在发生的事情,并将结果与rvest
的{{1}}和/或html_session
{{1}结合使用}}
在这种情况下,您会看到原始网址包含初始httr
菜单,您还会看到选择一个POST
来发布:
<select>
原始表单元素中包含许多隐藏变量,以及POST
,http://www.wbsec.gov.in/(S(njkinc55hbv2hw55xksxdv45))/DetailedResult/Detailed_gp.aspx
和ddldistrict
。响应包含后续的ddlblock
菜单选项。
使用ddlgp
获取每个下拉菜单的<select>
属性,然后将rvest
转到value
网址,直到您获得所有组合。
你可能会得到一个Selenium答案,但是这个问题只需要发布到表单,这是POST
和Detailed_gp.aspx
擅长的。
答案 1 :(得分:1)
您似乎没有正确设置Selenium。确保已下载Selenium并在R中加载R Selenium。This link可能会有所帮助。
一旦Selenium设置正确,您所要做的就是找到css选择器(selectorgadget是一个很好的工具),并将所需信息发送到下拉菜单,抓取网站并重复。我会做三次下拉。