examples chart javascript r web-scraping phantomjs rselenium

javascript - chart - plotly examples



El uso de R para agregar el campo a la forma en lĂ­nea y raspar la tabla creada javascript resultante (2)

Estoy intentando que R complete el campo "Buscar por código postal" en esta página web http://cti.voa.gov.uk/cti/ con texto predefinido (por ejemplo, BN1 1NA), avance a la página siguiente y elimine el resultado Tabla de 4 columnas, que, dependiendo del código postal, puede tener varias páginas. Para hacerlo más complejo, el ''Indicador de mejora'' no es un campo de texto, sino un archivo de imagen (como se ve si busca con el código postal BN1 3HP). Prefiero que esta columna contenga un 0 o 1 dependiendo de si la imagen está presente.

En definitiva, estoy buscando un buen marco de datos que refleje las 4 columnas en la pantalla.

He tratado de modificar las sugerencias de esta pregunta para hacer lo que he descrito arriba sin suerte, y para ser sincero, estoy fuera de mi profundidad tratando de descifrar esta.

Me doy cuenta de que R puede no ser el más adecuado para lo que tengo que hacer, pero es todo lo que tengo disponible para mí. Cualquier ayuda sería muy apreciada.


No estoy seguro de lo que el T & C del sitio web de VOA tiene que decir sobre raspado, pero este código hará el trabajo:

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

Firebug tiene un excelente panel ''Net'' donde se pueden ver los encabezados POST. La mayoría de los navegadores modernos también tienen algo similar incorporado.


Uso RSelenium para eliminar una lista de impuestos del ayuntamiento de un código postal de Exeter:

library(RSelenium) library(RCurl) input = ''EX4 2NU'' appURL <- "http://cti.voa.gov.uk/cti/" RSelenium::startServer() remDr <- remoteDriver() remDr$open() Sys.sleep(5) remDr$navigate(appURL) search.form <- remDr$findElement(using = "xpath", "//*[@id=''txtPostCode'']") search.form$sendKeysToElement(list(input, key = "enter")) doc <- remDr$getPageSource() tbl = xpathSApply(htmlParse(doc[[1]]),''//tbody'') temp1 = readHTMLTable(tbl[[1]],header=F) v = length(xpathSApply(htmlParse(doc[[1]]),''//a[@class="next"]'')) while (v != 0) { nextpage <- remDr$findElement(using = "xpath", "//*[@class = ''next'']") nextpage$clickElement() doc <- remDr$getPageSource() tbl = xpathSApply(htmlParse(doc[[1]]),''//tbody'') temp2 = readHTMLTable(tbl[[1]],header=F) temp1 = rbind(temp1,temp2) v = length(xpathSApply(htmlParse(doc[[1]]),''//a[@class="next"]'')) } finaltable = temp1

Espero que lo encuentres útil. Con este, puede eliminar varios datos de página.