[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