偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

[[404551]]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本文轉(zhuǎn)載自微信公眾號(hào)「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系未聞Code公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2025-05-28 03:15:00

Scrapy數(shù)據(jù)sleep

2020-12-04 06:39:25

爬蟲網(wǎng)頁

2021-09-26 05:01:55

Scrapy項(xià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

項(xiàng)目環(huán)境變量

2022-03-12 20:38:14

網(wǎng)頁Python測(cè)試

2021-10-15 21:08:31

PandasExcel對(duì)象

2024-10-16 21:47:15

2020-12-11 06:30:00

工具分組DataFrame

2021-12-15 22:04:11

瀏覽器重復(fù)登錄

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(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

單元測(cè)試代碼項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)