2017-10-02 3 views
0

train timetable web page에서 데이터에 액세스하고 싶습니다. 나는 HTML 파일로 로컬 소스 코드를 저장할 때rvest로 온라인 PDF 스크랩

> read_html("https://www.scotrail.co.uk/sites/default/files/assets/download_ct/_sr1705_glasgow-edinburgh_via_falkirk_highv2.pdf") 

{xml_document} 
<html> 
[1] <body><p>%PDF-1.5\r%\xe2ãÏÓ\r\n22 0 obj\r&lt;&gt;\rendobj\r    \rxref\r22 97\r0000000 ... 
[2] <html><p>C*ÐsO\u0086ZFWM\u0086X H$\u0083&gt;\u0083-Ïs\u0086O=Ì\u008c"Lí½/1\u009c\u009fõ\u008e\u0 ... 

그러나 나는 잘 내용을 긁어 수 있습니다 : 나는 좋겠

> read_html("/path/to/this/file/_sr1705_glasgow-edinburgh_via_falkirk_highv2.html") 
{xml_document} 
<html dir="ltr" mozdisallowselectionprint="" moznomarginboxes=""> 
[1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n<meta charset="utf- ... 
[2] <body tabindex="1" class="">\n <div id="outerContainer">\n\n  <div id="sidebarContainer"> ... 

를 URL에 rvest 사용하면 유용한 답변을 제공하지 않습니다 수동으로 다운로드하여 html 파일로 저장하는 대신 URL을 사용하여 긁어 모으는 것을 좋아합니다. 필자는 PDF에 대해 근본적인 것이 빠져있는 것처럼 느낍니다. 나는 URL의 파일 확장자가 .pdf이지만 F12가 HTML을 드러내는 것에 혼란스러워한다.

이 URL에서 직접 긁어 모으는 방법이 있습니까? 그렇지 않은 경우 왜 로컬에 저장하면 문제가 해결됩니까?

+0

'read_html()'은 pdf 파일을 html로 읽으 려하므로 쓰레기를 제공합니다. PDF를 저장하기 위해'download.file ("https : //blablabla.pdf", "save_here.pdf")'를 사용할 수 있습니다. –

+0

어디에서 첫 번째 URL을 가져 옵니까? 모든 온라인 PDF 문서의 URL을 알고 있습니까? –

+0

방금 ​​웹 사이트를 사용하여 첫 번째 URL로 이동했습니다. 문서 수는 다른 URL을 동일한 방식으로 가져올 정도로 작습니다. – joga

답변

0

벡터에 저장된 URL이 모두 my_urls 인 경우이를 반복하고 R에 해당 파일을 다운로드 할 수 있습니다. mapply()를 사용하여 아마도 좀 더 우아하게

my_urls <- c("www.pdf995.com/samples/pdf.pdf", 
      "che.org.il/wp-content/uploads/2016/12/pdf-sample.pdf", 
      "www.africau.edu/images/default/sample.pdf") 
save_here <- paste0("document_", 1:3, ".pdf") 

for(i in seq_along(my_urls)){ 
    download.file(my_urls[i], save_here[i]) 
} 

또는

:

mapply(download.file, my_urls, save_here) 

실행 한 후, 당신은 당신의 작업 디렉토리에 저장 document_1.pdf라는 세 개의 PDF 파일, document_2.pdfdocument_3.pdf가있는 것을 볼 수 있습니다.

+0

죄송합니다. 제 질문에 대해 분명히 대답 했어야합니다. 나는 그 URL에서의 pdf가 html 소스 코드를 갖는 이유에 대해 특별히 궁금해하고있다. 어쩌면 나는 pdfs 또는 웹에 대한 기본적인 지식을 놓치고있다. 가능한 경우 내 목표는 rvest를 사용하여 html 소스 코드에 액세스하여 파일을 다운로드하지 않도록하는 것입니다. – joga

+0

정확히 어떻게하면 PDF 파일의 HTML 소스 코드를 얻을 수 있습니까? –

+0

이것은 Firefox에 있습니다 : 1. 첫 번째 URL로 이동하십시오. 2. F12 키를 누르고 DOM 및 스타일 관리자로 이동하십시오. 3. 상단 HTML 노드를 Rclick : Copy -> outer html. 4. 텍스트 편집기에 붙여 넣습니다. 5. 확장명이 .html 인 파일을 저장하십시오. – joga