在网页上下载所有PDF链接?[关闭]


Answers:


36

您可以使用wget并运行如下命令:

wget --recursive --level=1 --no-directories --no-host-directories --accept pdf http://example.com

或使用简短选项:

wget -r -l 1 -nd -nH -A pdf http://example.com

更新:由于您的更新说您正在运行Windows 7 ,因此请cmd提示符处将wget用于Windows

更新2:对于图形解决方案-尽管可能会过分使用,因为它也会获取其他文件,所以它是DownThemAll


谢谢凯文(Kevin)的建议,wget看起来不错,无论如何,我还是希望使用非命令行的“图形”软件。:)
iAsk 2011年

2
这甚至拒绝了初始的.html页面。有没有经过测试?
dan3

该问题询问有关下载所有PDF链接的信息,因此,是的,初始.html页面将被忽略。
凯文·沃辛顿

在Windows 7中使用Power Shell可以做同样的事情吗?
Benedikt Buchert,2015年

1
我还建议两次文件下载之间至少要延迟几秒钟,以便保持良好状态,而不会使远程服务器不堪重负。E,G,wget的,加在的标记-w 5
KJH

6
  1. 在浏览器中,按CTRL+ SHIFT+ J,然后输入

    var pdflinks = []; Array.prototype.map。调用(document.querySelectorAll(“ a [href $ = \”。pdf \“]”),函数(e,i){if((pdflinks || [])。indexOf(e.href)==-1) {pdflinks.push(e.href);}});console.log(pdflinks.join(“”));

    这将在控制台中返回:

    /superuser/tagged/somepdf1.pdf ”“ /superuser/tagged/somepdf2.pdf ”“ /superuser/tagged/somepdf3.pdf

  2. 现在使用wget命令行选项wget url1 url2 ...

复制并粘贴此内容,打开控制台Enter,wget然后单击鼠标右键以插入剪贴板内容,然后按Enter。

要使用下载文件,请将行与“ \ n”连接起来,并按如下所示使用参数 wget -i mydownload.txt

请注意,大多数其他(GUI)下载程序也接受使用空格分隔的URL列表进行调用。

希望这可以帮助。这就是我通常的做法。它比任何具有图形用户界面的扩展都更快,更灵活,我必须学习并保持熟悉。


1
更好的是console.log('"' + pdflinks.join('" "') + '"')-否则,您实际上并不会获得引用的URL
dan3

1

如果您想留在浏览器中,我正是为此目的编写了一个Web扩展程序-我正在努力添加保存具有正确格式标题的学术文章PDF的功能,但是如果您只想下载所有内容,那是完美的为了这。

这就是所谓的标签保存和Chrome网络商店在这里。如果仅在选项卡中将它们全部打开,甚至不需要输入URL列表(但是对于大量文件,这可能会降低计算机的速度,因此我添加了添加自己的选项)。


0

我最近在Windows上使用了uGet。它具有GUI,您可以过滤要下载的文件。

节省尝试记住所有这些


0

在Google Chrome浏览器上,可以使用扩展程序,例如:

  • 下载大师

    使用此扩展程序,您可以下载正在访问的网页上链接的所有图像,视频,pdf,doc和任何其他文件。


0

谷歌

很少有Python工具可以根据Google搜索结果从网站下载PDF链接。

例如

  • google_dl脚本(推荐)。

    用法:

    ./google_dl -s http://www.example.com/ -f pdf ""
    
  • gsrchDwn脚本(基于neo的脚本)。

    用法:

    ./gsrchDwn.py --query "site:http://www.example.com/" --ftype pdf
    

注意:我是上述两个脚本的维护者。

他们俩都在实现xgooglePython库。我的这个库的分支基于pkrumins/xgoogle版本


相关:从Linux命令行进行Web搜索

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.