R中包含下拉菜单的刮痧页面

时间:2015-02-25 04:12:49

标签: r selenium web-scraping

我正在尝试使用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")

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

使用burpsuite等中间人来捕捉正在发生的事情,并将结果与​​rvest的{​​{1}}和/或html_session {{1}结合使用}}

在这种情况下,您会看到原始网址包含初始httr菜单,您还会看到选择一个POST来发布:

<select>

原始表单元素中包含许多隐藏变量,以及POSThttp://www.wbsec.gov.in/(S(njkinc55hbv2hw55xksxdv45))/DetailedResult/Detailed_gp.aspx ddldistrict。响应包含后续的ddlblock菜单选项。

使用ddlgp获取每个下拉菜单的<select>属性,然后将rvest转到value网址,直到您获得所有组合。

你可能会得到一个Selenium答案,但是这个问题只需要发布到表单,这是POSTDetailed_gp.aspx擅长的。

答案 1 :(得分:1)

您似乎没有正确设置Selenium。确保已下载Selenium并在R中加载R Selenium。This link可能会有所帮助。

一旦Selenium设置正确,您所要做的就是找到css选择器(selectorgadget是一个很好的工具),并将所需信息发送到下拉菜单,抓取网站并重复。我会做三次下拉。