HTTrack CLI模式下强力抓取网站的选项

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是无能。

在使用HTTrack抓取网站时,由于这个软件本身是2000年前后的产物,可能存在那个时代的某些限制,因此我将那些容易变得很长的命令写在了shell脚本中,并在此记录下来。
特别是,在日本的文章中,关于HTTrack的几乎都是Windows GUI版本,关于CLI操作的信息很少,所以特此记录。

#!/bin/bash

httrack\
    'https://example.com'\
    '+*/*.pdf'\
    --sockets=59\
    --robots=0\
    --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'\
    -O '/media/your/outdir/'\
    --can-go-up-and-down\
    --keep-alive\
    --mirror\
    --depth=999999999\
    -%P\
    --retries=999999\
    --ext-depth=0\
    --timeout=9999\
    -T1000000\
    −−max−rate=0\
    --disable-security-limits

下面我将解释一些重要的选项。

max−rate=0

如果将上限值设置为 --max-rate=999999 等,似乎会启用标准的速度限制,并且无法正确识别,因此将其设置为0似乎可以解除速度限制。

disable-security-limits

这个选项似乎需要与上述选项配合使用,但我不知道哪个是必需的,所以两个都加上了。

顺便说一下,这个选项本身在官方文档中没有提及,所以它可能是一个开发者选项。

ext-depth=0

这是最大深度设置,但如果设置为0,似乎可以几乎无限地抓取。

顺便说一下,在这种情况下,在设置ext-depth=0之后,再加入--depth=999999999,似乎可以识别并抓取到999999999层,而仅仅设置ext-depth=0可能无法实现。

另外,如果未设置为0,则会输出如下错误:

nohup.out:PANIC! : Too many URLs : >99999 [3031]

这可能意味着这个选项对于一个自2000年以来就存在的软件来说,执行了意料之外的操作。


以上就是三个重要的选项。

至于其他选项,请查阅官方文档。

https://www.httrack.com/html/fcguide.html

那么。

下次再见。

Related Posts