如何使用 wget 抓取仅下载 HTML 文件(忽略图像、css、js)

Nat*_*.B. 17 wget web-crawler

本质上,我想用 Wget 抓取整个网站,但我需要它永远不要下载其他资产(例如图像、CSS、JS 等)。我只想要 HTML 文件。

谷歌搜索完全没用。

这是我尝试过的命令:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com
Run Code Online (Sandbox Code Playgroud)

我们的网站是混合 flat-PHP 和 CMS。所以,HTML “文件”可能是/path/to/page/path/to/page//path/to/page.php,或/path/to/page.html

我什至包括-R js,css但它仍然下载文件,然后拒绝它们(带宽、CPU 和服务器负载的无意义浪费!)。

Nat*_*.B. 16

@ernie 关于--ignore-tags引导我走上正确道路的评论!当我抬起头--ignore-tagsman,我注意到了--follow-tags

设置--follow-tags=a让我跳过imglinkscript,等。

对于某些寻找相同答案的人来说,它可能太有限了,但它实际上对我来说效果很好(如果我错过了几页也没关系)。

如果有人找到允许扫描所有标签的方法,但防止wget仅在下载文件后拒绝文件(他们应该在下载前根据文件名或标题内容类型拒绝),我将非常乐意接受他们的回答!


Spi*_*pir 6

添加选项怎么样:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Run Code Online (Sandbox Code Playgroud)