Python的Scrapy框架基本使用詳解
一、Scrapy框架使用
1. 創(chuàng)建scrapy項(xiàng)目
(不能有漢字,不能數(shù)字開頭)
scrapy startproject Baidu
2. 創(chuàng)建爬蟲文件
cd Baidu scrapy genspider wenda www.baidu.com

注意: parse()是執(zhí)行了start_url之后要執(zhí)行的方法,方法中的response就是返回的對(duì)象。相當(dāng)于response = requests.get或requests.post
3. 運(yùn)行爬蟲代碼
scrapy crawl wenda
在parse()函數(shù)打印一句話,運(yùn)行后發(fā)現(xiàn)沒有打印結(jié)果,原因是被一個(gè)叫robots.txt的文件給阻止了。

解決:大平臺(tái)的君子協(xié)議,只需在settings里將ROBOTSTXT_OBEY = True注釋掉即可。

再次運(yùn)行

4. scrapy文檔
scrapy官網(wǎng):https://scrapy.org/
scrapy文檔:https://doc.scrapy.org/en/latest/intro/tutorial.html
scrapy日志:https://docs.scrapy.org/en/latest/news.html
二、scrapy項(xiàng)目的結(jié)構(gòu)

四、response的屬性和方法
- response.text 獲取響應(yīng)的字符串(源碼)
- response.body 獲取響應(yīng)的二進(jìn)制數(shù)據(jù)(二進(jìn)制源碼)
- response.xpath 直接通過xpath解析response中的內(nèi)容
- response.extract() 提取selector對(duì)象的data所有屬性值
- response.extract_first() 提取selector列表的第一個(gè)數(shù)據(jù)
- response.get() : 得到第一條數(shù)據(jù)
- response.getall() :取出所有的數(shù)據(jù),以列表的方式呈現(xiàn)
五、scrapy工作原理
- 引擎向spiders要url
- 引擎將要爬取的url給調(diào)度器
- 調(diào)度器會(huì)將url生成請(qǐng)求對(duì)象放入到指定的隊(duì)列中
- 從隊(duì)列中出隊(duì)一個(gè)請(qǐng)求
- 引擎將請(qǐng)求交給下載器處理
- 下載器發(fā)送請(qǐng)求獲取互聯(lián)網(wǎng)數(shù)據(jù)
- 下載器將數(shù)據(jù)返回給引擎
- 引擎將數(shù)據(jù)再次給spiders
- spiders通過xpath解析該數(shù)據(jù),得到數(shù)據(jù)或url
- spiders將數(shù)據(jù)或url給到引擎
- 引擎判斷是數(shù)據(jù)還是url,若是數(shù)據(jù),交給管道處理;若是url,交給調(diào)度器處理

到此這篇關(guān)于Python的Scrapy框架基本使用詳解的文章就介紹到這了,更多相關(guān)Python的Scrapy框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python web應(yīng)用程序之Django數(shù)據(jù)庫(kù)詳解
這篇文章主要介紹了python web應(yīng)用程序之Django數(shù)據(jù)庫(kù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
Python基于codecs模塊實(shí)現(xiàn)文件讀寫案例解析
這篇文章主要介紹了Python基于codecs實(shí)現(xiàn)文件讀寫案例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Python從零構(gòu)建一個(gè)自動(dòng)化報(bào)表生成器
在日常工作中,報(bào)表生成是一項(xiàng)頻繁且繁瑣的任務(wù),這篇文章主要為大家詳細(xì)介紹了如何Python從零構(gòu)建一個(gè)自動(dòng)化報(bào)表生成器,感興趣的小伙伴可以了解下2026-03-03
python使用smtplib模塊通過gmail實(shí)現(xiàn)郵件發(fā)送的方法
這篇文章主要介紹了python使用smtplib模塊通過gmail實(shí)現(xiàn)郵件發(fā)送的方法,涉及Python使用smtplib模塊發(fā)送郵件的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-05-05
Python處理Excel表中單元格帶有換行的數(shù)據(jù)問題
這篇文章主要介紹了Python處理Excel表中單元格帶有換行的數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
詳解如何使用Pandas處理時(shí)間序列數(shù)據(jù)
時(shí)間序列數(shù)據(jù)在數(shù)據(jù)分析建模中很常見,例如天氣預(yù)報(bào),空氣狀態(tài)監(jiān)測(cè),股票交易等金融場(chǎng)景,本文給大家詳細(xì)介紹了如何使用Pandas處理時(shí)間序列數(shù)據(jù),文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-01-01

