當前位置:考研網大全 - 高考真题 - Python編程基礎(5) Scrapy爬蟲框架

Python編程基礎(5) Scrapy爬蟲框架

通過前面四章的學習,我們可以使用Requests庫、美湯庫和Re庫來編寫基本的Python爬蟲程序。那麽本章將學習壹個專業的網絡爬蟲框架——Scrapy。對,是框架,不是前面介紹的那種函數庫。

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管道處理。項目類似於字典類型,可以根據字典類型進行操作。

  • 上一篇:讀傅雷來信的回答
  • 下一篇:適合考研的211院校有哪些?
  • copyright 2024考研網大全