Je suis en train de télécharger automatiquement les documents pour le pétrole & puits de gaz de la Commission de conservation du pétrole et du gaz du Colorado (COGCC) en utilisant les paquets « rvest » et « téléchargeur » dans R.Télécharger les documents de la page Web ASPX dans R
Le lien vers la table/le formulaire qui contient les documents pour un puits particulier est; http://ogccweblink.state.co.us/results.aspx?id=12337064
Le « id = 12337064 » est l'identifiant unique pour le bien
Les documents sur la page du formulaire peut être téléchargé en cliquant dessus. Un exemple est ci-dessous. Le "DocumentID = 3172781" est l'ID document unique pour le document à télécharger. Dans ce cas, un fichier xlsm. D'autres formats de fichiers sur la page du document incluent PDF et xls.
Jusqu'ici j'ai été capable d'écrire un code pour télécharger n'importe quel document pour n'importe quel puits mais il est limité à seulement la première page. La majorité des puits ont des documents sur plusieurs pages et je suis incapable de télécharger des documents sur les pages autres que la page 1 (toutes les pages du document URL similaire)
## Extract the document id for document to be downloaded in this case "DIRECTIONAL DATA". Used the SelectorGadget tool to extract the CSS path
library(rvest)
html <- html("http://ogccweblink.state.co.us/results.aspx?id=12337064")
File <- html_nodes(html, "tr:nth-child(24) td:nth-child(4) a")
File <- as(File[[1]],'character')
DocId<-gsub('[^0-9]','',File)
DocId
[1] "3172781"
## To download the document, I use the downloader package
library(downloader)
linkDocId<-paste('http://ogccweblink.state.co.us/DownloadDocument.aspx DocumentId=',DocId,sep='')
download(linkDocId,"DIRECTIONAL DATA" ,mode='wb')
trying URL 'http://ogccweblink.state.co.us/DownloadDocument.aspx?DocumentId=3172781'
Content type 'application/octet-stream' length 33800 bytes (33 KB)
downloaded 33 KB
Est-ce que quelqu'un sait comment je peux modifier mon code pour télécharger des documents sur d'autres pages?
Merci beaucoup!
Em
Lorsque vous chargez cette page il y a une demande de poste contenant quelque chose comme '__EVENTARGUMENT = page% 242 '. Ce paramètre semble gouverner les données que vous voyez. –
Il y a des indices avec rcurl et httr [ici] (http://stackoverflow.com/questions/5797688/post-request-using-rcurl) (utilisez le kit dev dans firefox ou chrome pour voir la requête que votre navigateur envoie et imitez-les plus tard) – Tensibai
Merci pour la suggestion @ user2706569. J'ai changé le Param à '__EVENTARGUMENT = Page $ 2' et relancé le code suivant trouvé sur [link] (http://stackoverflow.com/questions/15853204/how-to-login-and-then-download-a-file- from-aspx-web-pages-with-r) pour afficher les documents à la page 2 mais la demande de publication affiche toujours les documents à la première page. Le seul ajustement mineur apporté au code comprenait 'eventargument <- as.caractère ("Page $ 2"); params <- list ('__ EVENTARGUMENT' = eventargument); html = postForm ('http://ogccweblink.state.co.us/results.aspx?id=12337064', .params = params, curl = curl) ' – user2566907