scrapy 框架里断点无法使用 debug 但是可以 run 的情况;
情景条件
- 爬虫 scrapy 项目代码无法正常 debug 调试, 但是可以正常运行
- Python 3.8.19 \ scrapy 2.11.1 \ twisted 23.04.0
问题点
[asyncio] ERROR: Exception in callback <Task pending name='Task-1' coro=<SpiderMiddlewareManager.scrape_response.<locals>.process_callback_output() running at C:\Users\<MyComputerName>\.conda\envs\dcg-spider-data\lib\site-packages\scrapy\core\spidermw.py:295> cb=[Deferred.fromFuture.<locals>.adapt() at C:\Users\<MyComputerName>\.conda\envs\dcg-spider-data\lib\site-packages\twisted\internet\defer.py:1063]>()
handle: <Handle <Task pending name='Task-1' coro=<SpiderMiddlewareManager.scrape_response.<locals>.process_callback_output() running at C:\Users\<MyComputerName>\.conda\envs\dcg-spider-data\lib\site-packages\scrapy\core\spidermw.py:295> cb=[Deferred.fromFuture.<locals>.adapt() at C:\Users\<MyComputerName>\.conda\envs\dcg-spider-data\lib\site-packages\twisted\internet\defer.py:1063]>()>
Traceback (most recent call last):
File "C:\Users\<MyComputerName>\.conda\envs\dcg-spider-data\lib\asyncio\events.py", line 81, in _run
self._context.run(self._callback, *self._args)
TypeError: 'Task' object is not callable
解决方案
1. 在 scrapy 调度器接收 yield Request 请求前进行断点, 并在 console 控制台手动注入任意案件获取当前的异步事件
2. 更换 idea 执行器 Pycharm 版本