以下操作不起作用。
wget-r-A.pdf home_page_url
它停止时显示以下消息:
....
Removing site.com/index.html.tmp since it should be rejected.
FINISHED
我不知道为什么它只停在起始url,而不进入其中的链接来搜索给定的文件类型。
还有其他方法可以递归下载网站中的所有pdf文件吗?
它可能基于robots.txt。请尝试添加-e robots=off
。
其他可能的问题是基于cookie的身份验证或wget的代理拒绝。请参阅以下示例。
编辑:根据上的sunsite.univie.ac.
下面的cmd适用于我,它将下载网站的图片
wget -A pdf,jpg,png -m -p -E -k -K -np http://site/path/
这当然是因为HTML中的链接没有以/结尾。
Wget不会遵循它认为这是一个文件(但与您的过滤器不匹配):
<a href="link">page</a>
但将遵循以下内容:
<a href="link/">page</a>
您可以使用--debug
选项来查看这是否是实际问题。
我不知道有什么好的解决办法。在我看来,这是一个错误。
在我的wget版本(GNU wget 1.21.3)中,-A
/--accept
和-r
/--recursive
标志不能很好地相互作用。
以下是我为PDF(或任何其他文件类型)抓取域的脚本:
wget --no-verbose --mirror --spider https://example.com -o - | while read line
do
[[ $line == *'200 OK' ]] || continue
[[ $line == *'.pdf'* ]] || continue
echo $line | cut -c25- | rev | cut -c7- | rev | xargs wget --no-verbose -P scraped-files
done
说明:递归爬网https://example.com并将日志输出(包含所有抓取的URL)管道传输到CCD_ 7块。当日志输出中的一行包含PDF URL时,去掉前导时间戳(25个字符)和尾部请求信息(7个字符),然后使用wget下载PDF。