Sto testando alcuni script di raschiatura web in R. Ho letto molti tutorial, documenti e provato diverse cose ma nessun successo fino ad ora.R raschietto web con jsessionid
L'URL che sto cercando di racchiudere è this one. Ha dati pubblici, governativi e non dichiarazioni contro i web scrapers. È in portoghese, ma credo che non sarà un grosso problema.
Mostra un modulo di ricerca, con diversi campi. Il mio test stava cercando dati da uno stato particolare ("RJ", in questo caso il campo è "UF"), e città ("Rio de Janeiro", nel campo "MUNICIPIO"). Cliccando "Pesquisar" (ricerca), mostra il seguente output:
Usando Firebug, ho trovato l'URL che chiama (utilizzando i parametri di cui sopra) è:
http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam?buscaForm=buscaForm&codEntidadeDecorate%3AcodEntidadeInput=&noEntidadeDecorate%3AnoEntidadeInput=&descEnderecoDecorate%3AdescEnderecoInput=&estadoDecorate%3A**estadoSelect=33**&municipioDecorate%3A**municipioSelect=3304557**&bairroDecorate%3AbairroInput=&pesquisar.x=42&pesquisar.y=16&javax.faces.ViewState=j_id10
Il sito utilizza un jsessionid, come si può vedere usando la seguente:
library(rvest)
library(httr)
url <- GET("http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/")
cookies(url)
Sapendo che utilizza un jsessionid, ho usato i biscotti (URL) per verificare queste informazioni, e lo ha utilizzato in un nuovo URL In questo modo:
url <- read_html("http://www.dataescolabrasil.inep.gov.br/dataEscolaBrasil/home.seam;jsessionid=008142964577DBEC622E6D0C8AF2F034?buscaForm=buscaForm&codEntidadeDecorate%3AcodEntidadeInput=33108064&noEntidadeDecorate%3AnoEntidadeInput=&descEnderecoDecorate%3AdescEnderecoInput=&estadoDecorate%3AestadoSelect=org.jboss.seam.ui.NoSelectionConverter.noSelectionValue&bairroDecorate%3AbairroInput=&pesquisar.x=65&pesquisar.y=8&javax.faces.ViewState=j_id2")
html_text(url)
Bene, l'output non ha i dati. In effetti, ha un messaggio di errore. Tradotto in inglese, in pratica dice che la sessione è scaduta.
Suppongo sia un errore di base, ma mi sono guardato intorno e non ho trovato il modo di superarlo.
Grazie mille, hrbmstr. Ha funzionato bene! –