自定义脚本调用theHarvester模块出现协程未await运行时警告
问题原因
最新版本的theHarvester已经将do_search()、get_emails()等核心接口全部重构为异步协程方法,不能直接同步调用,必须配合await关键字和异步事件循环执行。你在终端直接运行theHarvester无报错,是因为其官方入口脚本已经内置了异步事件循环的处理逻辑,无需用户手动处理。
修复后的代码示例
import asyncio from theHarvester.discovery import baidusearch async def run_baidu_search(): baidu = baidusearch.SearchBaidu("example.com", 100) await baidu.do_search() emails = await baidu.get_emails() print(f"爬取到的邮箱结果:{emails}") if __name__ == "__main__": asyncio.run(run_baidu_search())
扩展说明
如果需要同时调用多个theHarvester的搜索模块,可以使用asyncio.gather()实现并发执行,相比同步串行调用效率会大幅提升。
内容的提问来源于stack exchange,提问作者Mark Archer
相关产品推荐
相关产品推荐

