Scrapy是壹個快速而強大的網絡爬蟲框架。
可能妳對框架不是很了解。爬蟲框架實際上是實現爬蟲功能的軟件結構和功能組件的集合。
簡而言之,Scrapy是壹個爬蟲程序的半成品,可以幫助用戶實現專業的網絡爬蟲。
使用Scrapy框架,妳不需要寫很多代碼。Scrapy做了大部分工作,讓妳調用幾個代碼自動生成壹個爬蟲程序,可以節省很多時間。
當然,框架生成的代碼基本是壹樣的。如果遇到壹些特定的爬蟲任務,不如使用請求庫方便。
PyCharm裝置
測試安裝:
出現框架版本,表示安裝成功。
掌握Scrapy爬蟲框架結構是用好Scrapy最重要的!
首先以上:
整個結構可以簡單概括為“5+2”結構和三個數據流。
5個主要模塊(和功能):
(1)控制所有模塊之間的數據流。
(2)事件可以根據條件觸發。
(1)按要求下載網頁。
(1)調度和管理所有爬網請求。
(1)解析下載程序返回的響應。
(2)生成壹個爬行項目——scraped item。
(3)生成壹個額外的爬行請求- request。
(1)管道蜘蛛產生的爬行。
(2)它由壹組操作序列組成,類似於壹個管道,每個操作都是壹個項目管道類型。
(3)清理、檢查和重新抓取項目中的HTML數據,並將數據存儲在數據庫中。
2個中間鍵:
(1)引擎、調度程序和下載器之間的用戶可配置控制。
(2)修改、丟棄或添加請求或響應。
(1)重新處理請求和爬網。
(2)修改、丟棄、添加請求或爬行項目。
3個數據流:
(1):圖中數字為1-2。
1:引擎從Spider - request獲取爬網請求。
2.引擎將爬行請求轉發給調度程序進行調度。
(2):圖中數字3-4-5-6。
3:引擎從調度程序獲取下壹個爬網請求。
4.引擎通過中間件向下載器發送爬行請求。
5.下載器抓取網頁後,形成壹個response - response,通過中間件發送給引擎。
6:引擎將收到的響應通過中間件發送給Spider進行處理。
(3):圖中的數字7-8-9
7.Spider處理響應並生成壹個爬行項目-抓取的項目。
8:引擎將已爬網項目發送到項目管道。
9:引擎向調度程序發送爬網請求。
任務處理流程:爬行從蜘蛛的初始爬行請求開始,引擎控制各個模塊的數據流,不斷從調度器獲取爬行請求,直到請求為空,最後在數據存儲到項目管道時結束。
作為用戶,只需要配置Scrapy框架的Spider和Item管道,也就是數據流的入口和出口,就可以完成壹個爬蟲程序的構建。Scrapy提供了簡單的爬蟲命令語句,幫助用戶壹鍵配置剩下的文件,所以我們來看看壹些有用的命令。
Scrapy使用命令行來創建和運行爬蟲。
PyCharm打開終端並啟動Scrapy:
Scrapy基本命令行格式:
具體的常用命令如下:
讓我們用壹個例子來學習命令的用法:
1.創建壹個Scrapy爬蟲項目,並在已啟動的Scrapy中繼續輸入:
執行這個命令,系統會自動在PyCharm的項目文件中創建壹個項目,命名為pythonDemo。
2.生成壹個刺兒頭爬蟲,以教育部網站為例:
該命令生成壹個名為demo的蜘蛛,並在蜘蛛目錄中生成文件demo.py。
該命令僅用於生成demo.py文件,該文件也可以手動生成。
查看demo.py文件:
3.配置生成的爬行器,它是demo.py文件:
4.運行爬蟲程序並抓取網頁:
如果爬取成功,我們會發現pythonDemo下還有壹個附加文件t 20210816 _ 551472 . html,我們爬取的網頁內容已經寫入這個文件。
這就是Scrapy框架的簡單用法。
Request對象代表壹個HTTP請求,由Spider生成,由Downloader執行。
Response對象表示壹個HTTP響應,它由下載器生成,由蜘蛛處理。
Item對象表示從HTML頁面中提取的信息內容,由Spider生成,由Item管道處理。項目類似於字典類型,可以根據字典類型進行操作。