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 <ecaca...@gmail.com <mailto:ecaca...@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@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.

_______________________________________________
R-br mailing list
R-br@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.

Responder a