如何在自制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
相关产品推荐
相关产品推荐

