我需要下载网站上的所有 PDF 文件。问题是,它们没有列在任何一个页面上,所以我需要一些东西(一个程序?一个框架?)来抓取网站并下载文件,或者至少获取文件列表。我试过 WinHTTrack,但无法让它工作。DownThemAll for Firefox 不会抓取多个页面或整个网站。我知道有一个解决方案,因为我不可能是第一个遇到这个问题的人。你会推荐什么?
答案1
该网站是否被 Google 编入索引?您只需搜索一下site:www.example.com filetype:pdf
,它就会返回该网站编入索引的所有 PDF 文件。
例子: 站点:en.wikipedia.org 文件类型:pdf
另一种方法是使用 wget,这是一个 *nix 命令行工具,但可用于 Windows。通过使用递归模式并指定仅保存 pdf 文件,它可以遍历网站并找到所有 PDF。
wget.exe -r -A pdf -np http://www.example.com/
将从 example.com 递归下载所有 PDF 文件,并且不会尝试进入父目录(仅当您想从特定子目录开始时才相关)。
我之前还没有真正测试过使用 WGET 处理特定文件类型,但是我之前进行过递归下载并且效果很好,所以你可能想尝试一下。
答案2
我可以建议你使用jsoup,Java HTML 解析器如果你熟悉 Java 或美丽的汤如果您熟悉 Python。
编写递归方法,执行以下操作:
- 查找页面上所有具有标签“a”和属性“href”的链接,获取其值并将链接与域名进行比较。
- 检查链接的扩展名 pdf 是否正确
- 如果此链接有 pdf 扩展名,则下载它或获取内容(如果此链接与域匹配)并再次执行相同的操作。
类似这样的。
答案3
这不是最简单的解决方案,但却是我最喜欢的。
编写您自己的蜘蛛!让它遍历网站、解析页面并查找您想要的文件。编写蜘蛛会带来许多有趣的挑战,我发现这很有趣。
虽然这可能不是 archer1742 想要的,但我确信有人(也许 archer1742 也是)会喜欢这个解决方案。