当前位置: 首页 > news >正文

在 Pycharm 中 debug Scrapy 项目

缘起

为什么写这篇文章呢?因为自己想在 Scrapy 项目里 debug, 看看 Response 有哪些属性。但是 Scrapy 的官方文档的 debug 说明只有 VSCode 的,没有 Pycharm 的(详见:https://docs.scrapy.org/en/latest/topics/debug.html):

{"version": "0.1.0","configurations": [{"name": "Python: Launch Scrapy Spider","type": "python","request": "launch","module": "scrapy","args": ["runspider","${file}"],"console": "integratedTerminal"}]
}

当然,如果熟悉 VSCode 的人看到这个配置就明白其实执行方式是:python -m scrapy runspider xxx_spider.py (注:这里的 xxx_spider.py 指 spider 文件,如官方文档里面的 quotes_spider.py)。如果这个人同时还熟悉 Pycharm, 那么他就知道在 Pycharm 里面配置进行 debug:

20251208-1

很遗憾,我不是这样的人,所以就有了这篇文章。

说明

时间:2025/12/06

Pycharm 版本:2025.2.4

Python 版本:3.12.0

Scrapy 版本:2.13.4

Windows 版本:Win 11

main.py

在与 scrapy.cfg 文件同层级的目录中新建一个名为 main.py 的文件,用于 debug。示例:

# main.py
from scrapy.cmdline import executeif __name__ == '__main__':print(1)print(2)execute(['scrapy', 'crawl', 'manning'])

项目结构:

20251208-2

TypeError: 'Task' object is not callable

当 Debug'main'时, 出现错误:

2025-12-06 10:51:15 [asyncio] ERROR: Exception in callback <Task pending name='Task-1' coro=<ExecutionEngine.open_spider() running at D:\Projects\PythonProjects\python-talk\backend\venv\Lib\site-packages\scrapy\core\engine.py:430> cb=[Deferred.fromFuture.<locals>.adapt() at D:\Projects\PythonProjects\python-talk\backend\venv\Lib\site-packages\twisted\internet\defer.py:1255]>()
handle: <Handle <Task pending name='Task-1' coro=<ExecutionEngine.open_spider() running at D:\Projects\PythonProjects\python-talk\backend\venv\Lib\site-packages\scrapy\core\engine.py:430> cb=[Deferred.fromFuture.<locals>.adapt() at D:\Projects\PythonProjects\python-talk\backend\venv\Lib\site-packages\twisted\internet\defer.py:1255]>()>
Traceback (most recent call last):File "D:\Apps\Python3.12\Lib\asyncio\events.py", line 84, in _runself._context.run(self._callback, *self._args)
TypeError: 'Task' object is not callable

20251208-3

之所以产生这个问题,不是代码的问题,是 Pycharm debuger 的问题,我还没梳理完,故暂不展开,只讲怎么解决。

Debug 方式

方法 1:TWISTED_REACTOR

  1. Settings > Python > Debugger,取消 Gevent compitable 的勾选。

2.在项目的 settings.py 文件里设置 TWISTED_REACTOR = 'twisted.internet.selectreactor.SelectReactor'

20251208-5

方法 2:python.debug.asyncio.repl

1.Settings > Python > Debugger,取消 Gevent compitable 的勾选(这步和方法 1 是一样的)。

20251208-4

2.双击 Shift 键打开搜索窗口。

双击 Shift 的意思是“search everywhere,详见 https://www.jetbrains.com/help/pycharm/searching-everywhere.html”。

20251208-7

3.点击 ALL 选项,输入 registry,最后点击 Regisry 选项。

20251208-8

4.找到 python.debug.asyncio.repl,取消勾选 Value 列的方框。

20251208-9

验证

20251208-10

如上图所示,设置后可以 debug。

参考资料

1.Scrapy 文档, Debugging Spiders: https://docs.scrapy.org/en/latest/topics/debug.html

2.Pycharm 文档,Search for a target by name:https://www.jetbrains.com/help/pycharm/searching-everywhere.html

codist_mp

欢迎搜索及关注:编程人(a_codists),如有问题请留言。

http://www.zskr.cn/news/77741.html

相关文章:

  • 2025 年 12 月噻唑膦生产厂家最新推荐榜:专业防治土传病害、死苗烂根(年终盘点)
  • 2025年上海晶体炉装置服务商排名:晶体炉供应企业哪家专业
  • 2025年昆明AI软件搜索广告营销公司TOP5推荐:信誉好的
  • 2025年12月油烟净化设备品牌推荐榜:厨房/无烟管/商用/家用/复合式/内循环/小型/油烟净化厂家,上海多环用技术破局安装难题,成餐饮商户新选择
  • work8
  • 2025年12月噻唑膦农药品牌厂家最新推荐:微囊悬浮剂、安全种衣剂科学防控土传病害,告别死苗烂根
  • 18.基础语法-数据类型
  • 2025年中国口碑好的外墙砖品牌推荐:外墙砖设计搭配与耐污抗
  • 2025年膜结构遮阳棚定制厂家权威推荐榜单:膜结构汽车棚‌/车棚膜结构‌/膜结构车棚‌‌源头厂家精选
  • 2025年北京融资顾问公司排行榜:融资顾问哪家强?新测评精选
  • 2025年真空炉生产厂哪家专业?稳定性好且可长期合作的真空炉
  • 2025年长三角地区五大泡沫混凝土公司推荐:看哪家产品质好
  • 16.基础语法-字符存储原理
  • 2025年盘点:家用PPR管哪个牌子质量最好?PPR管加盟厂家有哪些中亿百年引领行业标杆
  • 2025年宁波寺庙修缮装修公司电话推荐:本地靠谱的门店面装修
  • 本地安装ssh
  • 2025年度五大矿用开关柜品牌排行榜,推荐矿用开关柜GKD优
  • 2026 公司纠纷律师事务所权威测评:海淀靠谱机构口碑排名与专业解析
  • 如何科学应对土传病害难题?绿德地等农药研发企业盘点,聚焦根际健康
  • 移动端设备上稀奇古怪的前端问题收集(一)
  • 2025 茂名企业购买商标平台不踩坑:筛选 3 大标准 + 高适配选项测评
  • 创客匠人万人峰会总操盘手媛姐专访:高势能打法成IP破局新引擎,AI+IP时代已至
  • MQ消息乱序问题解析与实战解决方案
  • 2025年4g远程遥控开关工厂权威推荐:智能开关/手机遥控开关/4G远程启动停止控制增氧机开关源头厂家精选
  • 2025年真空包装袋行业优质厂商排行榜发布,行业内真空包装袋供应商技术领航者深度解析
  • 2025 年乌鲁木齐搬运机构最新推荐榜,聚焦企业服务专业性与用户满意度深度解析,涵盖多场景搬运需求乌鲁木齐家具搬运/乌鲁木齐设备搬运/乌鲁木齐工厂搬运/乌鲁木齐货物搬运服务商推荐
  • 三个常听到的消息/中间件MQTT RabbitMQ Kafka - 实践
  • 2025年工业锅炉节能设备五大推荐:口碑不错的搪瓷管空预器生
  • 2025年中国五大防盗门品牌售后客服电话汇总:星月神防盗门厂
  • 降ai率工具哪个好?从论文创作场景看工具选择逻辑