我想访问此train timetable web page中的数据。在URL上使用rvest并没有给出有用的答案:
> 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<>\rendobj\r \rxref\r22 97\r0000000 ...
[2] <html><p>C*ÐsO\u0086ZFWM\u0086X H$\u0083>\u0083-Ïs\u0086O=Ì\u008c"Lí½/1\u009c\u009fõ\u008e\u0 ...
然而,当我将源代码保存在本地作为html文件时,我可以很好地抓取内容:
> 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"> ...
我想使用网址而不是手动下载并保存为html文件。感觉我错过了一些关于PDF的基本知识。我很困惑,URL中的文件扩展名是.pdf,但F12显示了html。
有没有办法直接从这个网址中删除?如果没有,为什么在本地保存&#39;修复&#39;问题?
答案 0 :(得分:0)
如果您在名为my_urls
的向量中保存了所有网址,则可以对其进行迭代并告诉R
下载这些文件。
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()
:
mapply(download.file, my_urls, save_here)
执行后,您会看到工作目录中保存了三个名为document_1.pdf
,document_2.pdf
和document_3.pdf
的PDF。