自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:如何正確在 PyCharm 中調(diào)試 Scrapy 爬蟲?

開發(fā) 項目管理
我們知道,Scrapy 項目要啟動爬蟲的時候,需要在終端或者 CMD 中執(zhí)行一段命令scrapy crawl 爬蟲名。但是,PyCharm 的調(diào)試模式需要以某個.py文件作為入口來運行。

[[404551]]

最近有不少同學在粉絲群里面問,如何調(diào)試Scrapy 爬蟲。有些人不知道如何讓 Scrapy 爬蟲進入調(diào)試模式;還有一些人不知道怎么單步調(diào)試。

怎么進入調(diào)試模式

我們知道,Scrapy 項目要啟動爬蟲的時候,需要在終端或者 CMD 中執(zhí)行一段命令scrapy crawl 爬蟲名。但是,PyCharm 的調(diào)試模式需要以某個.py文件作為入口來運行。

為了解決這個問題,我們可以在 Scrapy 項目的根目錄創(chuàng)建一個 main.py文件,然后在里面寫下如下一段代碼:

  1. from scrapy.cmdline import execute 
  2.  
  3. execute('scrapy crawl 爬蟲名'.split()) 

然后,以這個文件作為入口文件,在這個文件上右鍵,選擇Debug 'main',就可以正確啟動 PyCharm 的調(diào)試模式并在第一個斷點上停下來了。如下圖所示:

如何正確單步調(diào)試

單步調(diào)試大家都會,不就是下圖中畫紅框的這兩個按鈕嘛:

左邊是逐行調(diào)試,遇到函數(shù)直接跳過,右邊是遇到函數(shù)進入

但問題是,在 Scrapy 項目里面,如果你的代碼運行到了yield scrapy.Request這種使用yield拋出請求對象的語句,只要再按一下單步調(diào)試的按鈕,你就會發(fā)現(xiàn) PyCharm 跳轉到了一個陌生的地方,如下圖所示:

又或者,你的代碼發(fā)送了很多次請求,回調(diào)函數(shù)都到self.parse里面,現(xiàn)在你已經(jīng)看完第一條請求返回的數(shù)據(jù)了,斷點停在了第28行,如下圖所示:

現(xiàn)在你想看第二次請求的返回數(shù)據(jù),于是你點了一下單步調(diào)試,于是你又來到了一個陌生的地方:

這個地方就像一個泥潭,無論你怎么跳出都跳不出來,始終無法回到你自己的代碼中。你越是往外跳,PyCharm 就會打開越多的陌生文件,如下圖所示:

遇到這種情況怎么辦呢?實際上非常簡單,你注意觀察在調(diào)試面板上,還有一個按鈕,如下圖箭頭所指:

這個按鈕的功能,是讓 PyCharm 運行的代碼,運行到你當前鼠標光標所在的位置再停下來。所以,例如現(xiàn)在上面圖中的代碼停在了第17行,我想馬上運行到第28行怎么辦?鼠標首先在第28行點一下,如下圖所示箭頭指向的輸入光標:

然后按下這個運行到光標的按鈕,就會發(fā)現(xiàn)代碼已經(jīng)運行到了這一行(是到了這一行,還沒有運行這一行)。接下來你再按一下單步調(diào)試按鈕,就能看到 info 變量的值了。看了第一次請求的返回值以后,你想看第二次請求的返回值怎么辦呢?也很好辦,你再一次用鼠標點一下第27行或者第28行,接下來再次點擊運行到當前光標的按鈕,于是第二次請求的結果立刻就出現(xiàn)在了你的面前:

本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯(lián)系未聞Code公眾號。

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2021-09-26 05:01:55

Scrapy項目爬蟲

2020-12-04 06:39:25

爬蟲網(wǎng)頁

2024-07-30 08:16:18

Python代碼工具

2023-10-28 12:14:35

爬蟲JavaScriptObject

2021-10-03 20:08:29

HTTP2Scrapy

2021-07-27 21:32:57

Python 延遲調(diào)用

2021-09-14 21:29:01

項目環(huán)境變量

2022-03-12 20:38:14

網(wǎng)頁Python測試

2021-10-15 21:08:31

PandasExcel對象

2020-12-11 06:30:00

工具分組DataFrame

2024-10-16 21:47:15

2021-12-15 22:04:11

瀏覽器重復登錄

2021-03-12 21:19:15

Python鏈式調(diào)用

2021-09-13 20:38:47

Python鏈式調(diào)用

2024-01-29 00:45:36

跨域后端接口

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2024-07-30 08:11:16

2022-01-26 07:35:10

爬蟲Requestsgzip

2022-08-26 09:34:19

單元測試代碼項目

2021-05-08 19:33:51

移除字符零寬
點贊
收藏

51CTO技術棧公眾號