Python爬蟲 --- 2.1 Scrapy 爬蟲框架的安裝與基本介紹

原文連接:https://www.fkomm.cn/article/...html

此次介紹一個及其強大的爬蟲框架---Scrapy,Scrapy由 Python 編寫,是一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途普遍,能夠用於數據挖掘、監測和自動化測試。

Srapy框架的安裝:

不管是在windows仍是mac以及linux下,均可以是用pip工具進行快速安裝:python

$ pip install scrapylinux

這裏推薦一個很是好用的Python調試shell:ipython。web

ipython是一個python的交互式shell,比默認的python shell好用得多,支持變量自動補全,自動縮進,支持bash shell命令,內置了許多頗有用的功能和函數。學習ipython將會讓咱們以一種更高的效率來使用python。同時它也是利用Python進行科學計算和交互可視化的一個最佳的平臺。shell

咱們依舊用pip工具進行安裝:數據庫

$ pip install ipythonwindows

Scrapy框架的基本介紹:

首先,咱們得明白一點,Scrapy不是一個功能函數庫,而是是用純Python實現一個爲了爬取網站數據、提取結構性數據而編寫的應用框架。簡單的說,他是一個半成品,能夠幫助用戶簡單快速的部署一個專業的網絡爬蟲。若是說前面咱們寫的定製bs4爬蟲是「手動擋」,那Scrapy就至關於「半自動檔」的車。bash

其次,Scrapy 使用了 Twisted(其主要對手是Tornado)異步網絡框架來處理網絡通信,能夠加快咱們的下載速度,不用本身去實現異步框架,而且包含了各類中間件接口,能夠靈活的完成各類需求。網絡

框架的力量,用戶只須要定製開發幾個模塊就能夠輕鬆的實現一個爬蟲,用來抓取網頁內容以及各類圖片,很是之方便。多線程

Scrapy框架結構:

首先來一張框架總體的圖:

圖片描述

從圖中咱們能夠清楚的看到,整個框架一共分爲五個部分:

  • SPIDERS
  • ITEM PIPELINES
  • DOWNLOADER
  • SCHEDULER
  • ENGIINE

這五個部分互相協做,共同完成了整個爬蟲項目的工做。下面咱們來一個一個介紹。

SPIDERS:

Spiders這個模塊就是整個爬蟲項目中須要咱們手動實現的核心部分,就是相似咱們以前寫的get_content函數部分,最主要的功能是 解析網頁內容、產生爬取項、產生額外的爬去請求。

ITEM PIPELINES:

這個模塊也是須要咱們手動實現的,他的主要功能是將咱們爬取篩選完畢的數據寫入文本,數據庫等等。總之就是一個「本地化」的過程。

DOWNLOADER:

這個模塊,是Scrapy幫咱們作好的,不須要咱們本身編寫,直接拿來用就行,其主要功能就是從網上獲取網頁內容,相似於咱們寫的get_html函數,固然,比咱們本身寫的這個簡單的函數要強大不少

SCHEDULER:

這個模塊對全部的爬取請求,進行調度管理,一樣也是不須要咱們寫的模塊。經過簡單的配置就能達到更加多線程,併發處理等等強大功能。

ENGIINE

這個模塊至關於整個框架的控制中心,他控制着全部模塊的數據流交換,並根據不一樣的條件出發相對應的事件,一樣,這個模塊也是不須要咱們編寫的。
Scrapy框架的數據流動:

先上一張圖:

圖片描述

說了各個模塊的做用,那麼整個項目跑起來的時候,數據究竟是怎麼運做的呢? 上圖的數字表明數據的流向,解釋以下:

  1. Engine從Spider處得到爬取請求(request)
  2. Engine將爬取請求轉發給Scheduler,調度指揮進行下一步
  3. Engine從Scheduler出得到下一個要爬取的請求
  4. Engine將爬取請求經過中間件發給Downloader
  5. 爬取網頁後後,downloader返回一個Response給engine
  6. Engine將受到的Response返回給spider處理
  7. Spider處理響應後,產生爬取項和新的請求給engine
  8. Engine將爬取項發送給ITEM PIPELINE(寫出數據)
  9. Engine將會爬取請求再次發給Scheduler進行調度(下一個週期的爬取)

系統化入門

Scrapy是一個很強大的爬蟲框架,用起來很方便,可是要定製高級的功能就不是那麼簡單的了。這裏只是簡單的介紹了一下框架的基本原理,但具體如何使用不是一時半會可以說完的,後面我會在例子中一一展示這個框架的高級功能。

若是你想要更加系統化的學習理解這個框架,能夠看看Scrapy的官方文檔:[Scrapy 1.5文檔]
(https://doc.scrapy.org/en/lat...,會讓你受益不淺的!!!!


相關文章和視頻推薦

圓方圓學院聚集 Python + AI 名師,打造精品的 Python + AI 技術課程。 在各大平臺都長期有優質免費公開課,歡迎報名收看。
公開課地址:https://ke.qq.com/course/362788                       

相關文章
相關標籤/搜索