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

Scrapy爬虫报错AttributeError:AsyncioSelectorReactor无_handleSignals属性求助

解决Scrapy执行scrapy crawl时的AttributeError: 'AsyncioSelectorReactor' object has no attribute '_handleSignals'错误

这个错误是Scrapy与Twisted版本不兼容导致的:新版本Twisted(22.10+)移除了AsyncioSelectorReactor类的_handleSignals方法,但旧版Scrapy的ossignal.py代码仍在调用该方法。

你的爬虫代码本身没有问题,以下是两种可行的解决方法:

方法一:降级Twisted版本

在虚拟环境中执行以下命令,将Twisted降级到兼容的版本(比如22.8.0):

pip install twisted==22.8.0

降级后重新运行scrapy crawl books即可。

方法二:修改Scrapy的ossignal.py文件

找到报错的ossignal.py文件(路径:C:\Users\Administrator\python\venv\bookscraper\Lib\site-packages\scrapy\utils\ossignal.py),修改install_shutdown_handlers函数:

将原来的:

reactor._handleSignals()

替换为兼容新版本Twisted的逻辑:

# 兼容Twisted新版本的信号处理
if hasattr(reactor, '_handleSignals'):
    reactor._handleSignals()
else:
    from twisted.internet.base import _SignalHandler
    _SignalHandler(reactor).handleSignals()

或者更简单的方式,直接注释掉reactor._handleSignals()这一行——后续代码已经手动注册了SIGTERM、SIGINT等信号的处理函数,不影响爬虫核心功能。

修改保存后,重新运行爬虫即可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:17:00