使用R将字段添加到在线表单并刮取生成的javascript创建表

Chr*_*ris 13 javascript r web-scraping phantomjs rselenium

我试图让R在这个网页http://cti.voa.gov.uk/cti/上用预定义的文本(例如BN1 1NA)完成"通过邮政编码搜索"字段,前进到下一页并抓取结果4列表,根据邮政编码,可以在多个页面上.为了使其更复杂,"改进指标"不是文本字段,而是图像文件(如果使用邮政编码BN1 3HP进行搜索,则会看到).我希望此列包含0或1,具体取决于图像是否存在.

最终,我追随一个很好的数据框架,它反映了屏幕上的4列.

我试图修改这个问题的建议去做我上面描述的没有运气的事情,说实话我试图破译这个问题.

我意识到R可能不是最适合我需要做的事情,但这些都是我可以使用的.任何帮助将不胜感激.

Nic*_*edy 5

我不确定VOA网站的条款和条件对刮刮说什么,但是这段代码可以完成这项工作:

library("httr")
library("rvest")
post_code <- "B1 1"
resp <- POST("http://cti.voa.gov.uk/cti/InitS.asp?lcn=0",
             encode = "form",
             body = list(btnPush = 1,
                         txtPageNum = 0,
                         txtPostCode = post_code,
                         txtRedirectTo = "InitS.asp",
                         txtStartKey = 0))
resp_cont <- read_html(resp)
council_table <- resp_cont %>%
  html_node(".scl_complex table") %>%
  html_table
Run Code Online (Sandbox Code Playgroud)

Firebug具有出色的“ Net”面板,可以在其中看到POST标头。大多数现代浏览器也内置类似的东西。