You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自制Python终端中添加无需退出即可调用Sherlock的search命令

解决方案

方法1:直接调用Sherlock命令行(简单易实现)

Sherlock本身支持命令行调用,你可以用subprocess模块在当前脚本内执行它,无需退出个人终端。

修改现有代码,添加search {username}命令的解析逻辑:

import os
import subprocess

while True:
    command = input(">- ")
    if command == "exit":
        break
    elif command == "clear":
        os.system("cls")
    elif command.startswith("search "):
        # 提取命令后的用户名,支持带空格的用户名
        username = command.split(maxsplit=1)[1]
        # Windows环境下通过python -m sherlock调用工具,若已将sherlock加入PATH可直接写["sherlock", username]
        subprocess.run(["python", "-m", "sherlock", username], shell=True)
    # 其他命令分支...

方法2:导入Sherlock核心模块调用(深度集成)

如果想完全用Python代码对接Sherlock的功能,可以直接调用它的核心搜索逻辑。首先确保安装最新版Sherlock:

pip install --upgrade sherlock

然后修改脚本:

import os
from sherlock.sherlock import Sherlock, run

while True:
    command = input(">- ")
    if command == "exit":
        break
    elif command == "clear":
        os.system("cls")
    elif command.startswith("search "):
        username = command.split(maxsplit=1)[1]
        # 初始化Sherlock实例,关闭默认全局输出,设置超时时间
        sherlock = Sherlock(username, print_all=False, timeout=10)
        # 执行搜索并获取结果
        results = run(sherlock)
        # 自定义格式输出结果
        print(f"\n【{username}】的搜索结果:")
        for site, info in results.items():
            status = info["status"].status
            if status == "found":
                print(f"✅ {site}: {info['url_user']}")
            else:
                print(f"❌ {site}: {status}")
    # 其他命令分支...

注意事项

  • 方法2依赖Sherlock内部模块结构,版本更新可能导致调用方式变化,遇到问题可查看其源码调整
  • Windows环境下,若用命令行调用失败,可替换为Python的完整路径,比如["C:\\Python310\\python.exe", "-m", "sherlock", username]
  • 部分网站会限制请求,可在调用时添加代理参数:方法1加--proxy http://你的代理地址,方法2给Sherlock实例传proxy="http://你的代理地址"参数

内容的提问来源于stack exchange,提问作者K80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:45:50