[R-br] Erro ao fazer download de PDFs: failed, no valid url links detected

salah salah3.1416 em gmail.com
Sexta Maio 27 18:48:01 BRT 2016


corrija j1 para j1 = "www.nature.com" sem a barra "/"

Em 27/05/2016 16:08, salah escreveu:
> Caro Elias
>
> Você pode baixar o pacote fonte metagear (a beleza do opensource) aqui:
>
> https://cran.r-project.org/src/contrib/Archive/metagear/metagear_0.1.tar.gz
>
> Examinando a função PDF_download() notamos que ela usa três arquivos:
> PDF_download.R, PDF_utils.R, PDF_collect.R e isPDF.R
>
> para o doi "10.1371/journal.pone.0123511" a função está extraindo como 
> alvo:
>
> "content=\"http://journals.plos.org/plosone/article/asset?id=10.1371/journal.pone.0123511.PDF"
>
> e o correto seria o link com atributo href:
>
> "href=\"/plosone/article/asset?id=10.1371%2Fjournal.pone.0123511.PDF"
>
> resolvendo em: 
> "http://journals.plos.org/plosone/article/asset?id=10.1371%2Fjournal.pone.0123511.PDF"
>
> Segue um pequeníssimo ROBOT, veja que ele não prevê https e necessita 
> das urls dos jornais alvo.
>
> # Author: salah
> ###############################################################################
> require(RCurl)
> require(XML)
>
> rm(list=ls())
>
> ## seleciona o link alvo e converte em caracter
> baixaURL = function(doi)
> {
>     ## link doi
>     urlDOI = paste0("http://dx.doi.org/", doi)
>
>     ## download url
>     web = getURLContent(urlDOI)
>     tc = textConnection(web)
>     web = readLines(tc)
>     close(tc)
>
>     ## captura os links
>     lnk = getHTMLLinks(web)
>
>     ## converte para chr
>     doc = htmlParse(lnk)
>     w = capture.output(doc)
>
>     return(w)
> }##end baixaURL
>
> ## prepara a url para download
> urlPDF = function(w, journal)
> {
>     a = unlist(strsplit(w, split = "\\s"))
>     b = unique(grep("pdf|PDF", a, value = TRUE))
>     cc = grep("href+", b, value = TRUE)
>     d = gsub("href\\=|\"|>", "", cc)
>     h = gsub(".*pdf|.*PDF", "", d)
>     outPDF = gsub(h[1], "", d)
>
>     return(paste0("http://", journal, outPDF))
> }##end naturePDF
>
> ## faz o download do pdf
> baixaPDF = function(urls, dest = "~")
> {
>     j = unlist(strsplit(urls, "/"))
>     namePDF = grep(".pdf|.PDF", j, value = T)
>
>     ## se houver pdf extra
>     for(i in 1:length(urls))
>     {
>         dir_name = paste0(dest, namePDF[i])
>         download.file(urls[i], dir_name)
>     }##end for
> }##end baixaPDF
>
> doiNature = c("10.1038/nutd.2016.11", "10.1038/srep17841", 
> "10.1038/srep25762")
> doiPLOS = c("10.1371/journal.pone.0123511", 
> "10.1371/journal.pbio.1002461")
>
> j1 = "www.nature.com/"
> j2 = "journals.plos.org"
>
> DATA = data.frame(DOI = c(doiNature, doiPLOS), Journal = c(j1, j1, j1, 
> j2, j2), stringsAsFactors = FALSE)
>
> destDir = "~/"
>
> for(n in 1:nrow(DATA))
> {
>     w = baixaURL(DATA$DOI[n])
>     urls = urlPDF(w, DATA$Journal[n])
>     print(urls)
>     baixaPDF(urls, destDir) ## faz o download
> }
>
>
> saudações
>
> Em 22/05/2016 23:23, Elias Carvalho escreveu:
>> Desculpe Leonardo, segue o código mínimo, tem dois DOIs para poder 
>> testar:
>>
>> *library(metagear)
>> *
>> *
>> *
>> *DOI <- "10.1371/journal.pone.0123511" # Disponível em: 
>> http://goo.gl/rhtvFx*
>> *# DOI <- "10.1038/srep17841"            # Disponível em: 
>> http://goo.gl/rNwOpk*
>> *filename <- "ArtigoTeste.pdf"
>> *
>> *folder <- "~"
>> *
>> *PDF_download(DOI, directory = folder, theFileName = filename, 
>> validatePDF = TRUE, quiet = FALSE)*
>>
>>
>> Em 22 de maio de 2016 09:41, Elias Carvalho <ecacarva em gmail.com 
>> <mailto:ecacarva em gmail.com>> escreveu:
>>
>>     Bom dia Pessoal
>>
>>     Estou baixando tentando baixar alguns pdf de artigos científicos
>>     pelo DOI usando o pacote metagear, porém a maioria apresenta a
>>     mensagem "failed, no valid url links detected", ou
>>     "cannot open: HTTP status was '404 Not Found' PDF download...
>>     skipped", mesmo ligando o proxy da universidade.
>>
>>     De 1800 artigos que preciso consegui por volta de uns 200
>>     download apenas.
>>
>>     Alguém poderia me dar uma ajuda em como resolver este problema ?
>>
>>     -- 
>>     Best regards... 8^)
>>
>>     “The mind that is open to new ideas never come back
>>     to its original size” /Albert Einstein/
>>
>>
>>     -- 
>>     Obrigado
>>     Elias
>>
>>
>>
>>
>> -- 
>> Best regards... 8^)
>>
>> “The mind that is open to new ideas never come back
>> to its original size” /Albert Einstein/
>>
>>
>> -- 
>> Obrigado
>> Elias
>>
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
>

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160527/1032f706/attachment.html>


Mais detalhes sobre a lista de discussão R-br