• Pycharm中断点调试(debug)scrapy


    OutLine

    一般写好一个 scrapy 项目,启动方式大多会在命令行里执行:

    scrapy crawl “spider-name” (后面有参数就跟参数)

    但这么启动不方便去断点调试,不便于快速定位问题、解决问题。

    So 记录下自己在pycharm中断点调试的过程。(下文中图片可能看不清,点击即可查看大图)

    配置Pycharm

    既然想用pycharm断点调试,理应把你的操作都框在pycharm里;

    因为 `scrapy crawl 爬虫name` 这种启动方式本质上是走的你Python环境里scrapy库(package)中cmdline.py

    (Libsite-packagesscrapycmdline.py)

    现在要把这个启动入口放在pycharm里启动;

    配置如下:

    Step1

    点击:`Run->Edit Configurations`

    Step2

    增加一个 `python` 配置项目:

    # Name:配置项目的名称
    # Script path:scrapy package中的cmdline.py文件路径
    # Parameters:启动scrapy爬虫所需参数(也就是传参)
    # Python Interpreter:选择所用的Python环境(我用的自己创建的anaconda虚拟环境,找cmdline.py文件时也是在虚拟环境中的site-packages找到,这点要注意)
    # Working directory:你scrapy爬虫项目根目录
    
    其余的选项用默认的就行
    Parameters 示例:
    crawl dceDailyMarket -a curDay=2021-04-08 -a orchestraCallBack=notCallBack -a orchestraCallBackParam=notCallBack 
    这是我所用的参数(传的参数),也即:crawl 爬虫名字(代码里的name变量对应的)-a 参数=参数值 -a 参数=参数值 -a 参数=参数值

    配置好后点击 ok ,你的pycharm右上方运行工具栏那里,就会有你刚配的这个启动项;

    Step3

    在需要调试的代码处加断点,然后点击debug按钮;

    代码走到断点处,就会停下来,然后就可以愉快的进行debug了~~

    Step4

    跨文件断点调试

    上面截图,dceDailyMarket.py 是我的具体爬虫代码文件

    代码执行过程中会走 pipline.py 里的代码,想看里面具体怎么走的?
    只需要在 pipline.py 里对应处加断点:

    代码中可能还会引用 toolUtils.py 中的方法

    如果想 debug 里面的代码,只需要在 toolUtils.py 里加断点即可

    这样就可以实时看到想看的信息(变量、对象、报错等……)

    END

    这样一来,就可以像调试一份普通Python代码那样easy了。

    便于快速定位问题、解决问题、提高效率、节省时间~

    对了,还有一种方法,可以起到同样效果:

    from scrapy import cmdline
    
    cmdline.execute()
    
    # 感兴趣的可以去了解下这种方式,我没去具体操作
  • 相关阅读:
    Smart Client Architecture and Design Guide
    Duwamish密码分析篇, Part 3
    庆贺发文100篇
    .Net Distributed Application Design Guide
    New Introduction to ASP.NET 2.0 Web Parts Framework
    SPS toplevel Site Collection Administrators and Owners
    来自Ingo Rammer先生的Email关于《Advanced .Net Remoting》
    The newsletter published by Ingo Rammer
    深度探索.Net Remoting基础架构
    信道、接收器、接收链和信道接受提供程序
  • 原文地址:https://www.cnblogs.com/bigtreei/p/14701520.html
Copyright © 2020-2023  润新知