wget 从页面内更改图像名称

wget 从页面内更改图像名称

该图像每分钟生成一次n,我想将每个图像获取到我的本地目录。我没有成功使用以下命令获取 png 图像:

wget -r -l1 --no-parent -A.png http://url.com/home/images/

因为它被网站屏蔽了,我无法使用

wget http://url.com/home/images/filename.png

因为图像的名称会随着更新而变化。

然而,图像已链接http://url.com/home/index.html,我可以从那里获取文件名。什么是一个可靠的方法来做到这一点?我知道要搜索的模式:它是从目录中调用的唯一图像/home/images/

答案1

两种策略:

  • index.html grep战略

只要 中只有一个 png 引用,它就有效index.html

#!/bin/bash
wget http://url.com/home/images/index.html
LINK=$(cat index.html | grep -zPo 'href=.*.png"')
LINK=${LINK#href=\"}; LINK=${LINK%\"}
wget --no-parent "http://url.com/home/images/$LINK"
rm index.html
  • 通过修改请求标头来模拟浏览器

如何做到这一点的示例是这里,这里这里

相关内容