Pycharm中斷點調試(debug)scrapy


OutLine

一般寫好一個 scrapy 項目,啟動方式大多會在命令行里執行:

scrapy crawl “spider-name” (后面有參數就跟參數)

但這么啟動不方便去斷點調試,不便於快速定位問題、解決問題。

So 記錄下自己在pycharm中斷點調試的過程。(下文中圖片可能看不清,點擊即可查看大圖)

配置Pycharm

既然想用pycharm斷點調試,理應把你的操作都框在pycharm里;

因為 `scrapy crawl 爬蟲name` 這種啟動方式本質上是走的你Python環境里scrapy庫(package)中cmdline.py

(Lib\site-packages\scrapy\cmdline.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()

# 感興趣的可以去了解下這種方式,我沒去具體操作

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM