👋 你好!如有任何专业咨询或合作,请通过以下邮箱联系我: [email protected]
📧 请尽量使用专业邮箱进行通信。让我们保持简洁高效,并使用英文交流!
OnionSearch 是一个 Python3 脚本,用于在不同 ".onion" 搜索引擎上抓取 URL。


pip3 install onionsearch
git clone https://github.com/megadose/OnionSearch.git
cd OnionSearch/
python3 setup.py install
帮助信息:
usage: onionsearch [-h] [--proxy PROXY] [--output OUTPUT]
[--continuous_write CONTINUOUS_WRITE] [--limit LIMIT]
[--engines [ENGINES [ENGINES ...]]]
[--exclude [EXCLUDE [EXCLUDE ...]]]
[--fields [FIELDS [FIELDS ...]]]
[--field_delimiter FIELD_DELIMITER] [--mp_units MP_UNITS]
search
positional arguments:
search 搜索字符串或短语
optional arguments:
-h, --help 显示此帮助信息并退出
--proxy PROXY 设置 Tor 代理(默认:127.0.0.1:9050)
--output OUTPUT 输出文件(默认:output_$SEARCH_$DATE.txt),其中 $SEARCH 会被替换为搜索字符串的前几个字符,$DATE 会被替换为日期时间
--continuous_write CONTINUOUS_WRITE
逐步写入输出文件(默认:False)
--limit LIMIT 设置每个引擎加载的最大页面数
--engines [ENGINES [ENGINES ...]]
要请求的引擎(默认:全部列表)
--exclude [EXCLUDE [EXCLUDE ...]]
要排除的引擎(默认:无)
--fields [FIELDS [FIELDS ...]]
输出到 CSV 文件的字段(默认:engine name link),可用字段如下所示
--field_delimiter FIELD_DELIMITER
CSV 字段的分隔符
--mp_units MP_UNITS 处理单元数量(默认:核心数减 1)
[...]
默认情况下,脚本会以参数 mp_units = cpu_count() - 1 运行。这意味着如果你的机器有 4 个核心,
它将并行运行 3 个抓取函数。你可以将 mp_units 设置为任意值,但建议保留默认值。
你可能希望将其设置为 1 以顺序运行所有请求(禁用多进程功能)。
请注意,逐步写入 CSV 文件的功能尚未经过多进程功能的充分测试,因此可能无法按预期工作。
另请注意,当 mp_units 大于 1 时,进度条可能无法正常显示。
这不会影响结果,所以不用担心。
请求所有引擎搜索单词 "computer":
onionsearch "computer"
请求所有引擎(排除 "Ahmia" 和 "Candle")搜索单词 "computer":
onionsearch "computer" --exclude ahmia candle
仅请求 "Tor66"、"DeepLink" 和 "Phobos" 搜索单词 "computer":
onionsearch "computer" --engines tor66 deeplink phobos
与上一个相同,但限制每个引擎加载的页面数为 3:
onionsearch "computer" --engines tor66 deeplink phobos --limit 3
请注意,支持的引擎列表(及其键值)已在脚本帮助信息(-h)中给出。
默认情况下,文件会在过程结束时写入。文件将采用 CSV 格式,包含以下列:
"engine","name of the link","url"
你可以通过参数 --fields 和 --field_delimiter 自定义输出文件中的内容。
--fields 允许你添加、删除或重新排序输出字段。默认模式如下所示。相反,你可以选择输出:
"engine","name of the link","url","domain"
通过设置 --fields engine name link domain。
甚至可以选择输出:
"engine","domain"
通过设置 --fields engine domain。
以上是示例,但有很多可能性。
最后,你也可以选择修改 CSV 分隔符(默认为逗号),例如:--field_delimiter ";"。
文件名默认为 output_$DATE_$SEARCH.txt,其中 $DATE 表示当前日期时间,$SEARCH 表示搜索字符串的前几个字符。
你可以通过运行脚本时使用 --output 来修改文件名,例如:
onionsearch "computer" --output "\$DATE.csv"
onionsearch "computer" --output output.txt
onionsearch "computer" --output "\$DATE_\$SEARCH.csv"
...
(注意:可能需要转义美元符号。)
在生成的 CSV 文件中,名称和 URL 字符串会尽可能进行清理,但仍可能存在一些问题……
你可以选择逐步写入输出文件(而不是在最后一次性写入,这样可以防止因错误而丢失结果)。为此,你需要使用 --continuous_write True,如下所示:
onionsearch "computer" --continuous_write True
然后你可以使用 Unix 命令 tail -f 来实时监控抓取结果。