1. 程式人生 > >Scrapy基礎 第一節:Scrapy介紹和安裝配置

Scrapy基礎 第一節:Scrapy介紹和安裝配置

Scrapy第一季:Scrapy框架基礎介紹

前置知識:

  • 掌握Python的基礎知識
  • 對爬蟲基礎有一定了解

說明: 執行環境

Win10,Python3 64位

目錄:

  • 第一節:Scrapy介紹和安裝配置
  • 第二節:Scrapy版的Hello World
  • 第三節:Scapy框架結構和元件介紹

第一節:Scrapy介紹和環境安裝

1 爬蟲是什麼

百度百科上的定義

網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在FOAF社群中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻、自動索引、模擬程式或者蠕蟲。

大型的網路爬蟲被廣泛的應用於搜尋引擎,資料探勘等領域,個人或企業利用爬蟲蒐集對自身有價值的資料,在大資料時代正在逐漸成為一種常態。

一個網路爬蟲的基本流程可以總結為以下迴圈: 在這裡插入圖片描述

2 Scrapy的價值

網路爬蟲是我們挖掘資料價值的重要工具,而一款好的爬蟲框架,是一個強力的挖掘機,能大幅提高我們挖掘資料資源的效率。

相信接觸過python的同學都知道,requests+selenium從功能上來說可以解決90%的爬蟲需求,也是各大教程的主打工具,我也是這樣入門爬蟲的,那為什麼我們還要用scrapy,是為了剩餘10%需求麼?當然不是!

功能特性往往只是產品的一方面,一個真正能穩定高效執行的商業化產品,需要考慮各個方面的內容。比如,設計爬蟲程式時,還要考慮防止重複爬取相同頁面(URL去重)、網頁搜尋策略(深度優先或廣度優先等)、爬蟲訪問邊界限定等一系列問題。

從頭開發一個爬蟲程式是一項煩瑣的工作,為了避免因製造輪子而消耗大量時間,在實際應用中我們可以選擇使用一些優秀的爬蟲框架,使用框架可以降低開發成本,提高程式質量,讓我們能夠專注於業務邏輯(爬取有價值的資料)。

Scrapy就是目前爬蟲框架中最流行,也最完善的一個,它提供了一套完整的解決方案,能幫助我們將作品產品化,而是不是一直停留在Demo階段。

3 安裝scrapy

首先需要有Python環境,這個就不用多說,自己安裝就行了

(1) 安裝wheel

pip install wheel

(2) 安裝XML解析支援

pip install lxml

(3) 安裝物件介面庫

pip install zope.interface

(4) 安裝pyOpenSSL

pip install pyOpenSSL

(5) 安裝twisted 不能通過pip安裝,只能通過whl安裝

根據自己的python和作業系統下載對應的版本,比如我的

在這裡插入圖片描述

下載後進入.whl 檔案所在目錄,本地安裝

pip install “Twisted‑18.9.0‑cp36‑cp36m‑win_amd64.whl”

(6) 安裝pywin32庫

pip install “pywin32‑224‑cp36‑cp36m‑win_amd64.whl”

PS: 網上也有人打包好的安裝包,搜尋下載安裝也行。

pywin32-221.win-amd64-py3.6.exe

(7) 安裝scrapy 準備工作都好了就可以直接安裝了

pip install scrapy

大概幾分鐘時間,如果執行沒有報錯那就安裝好了,如果中途還缺什麼模組就pip安裝

(8)檢測版本 最後再檢測一下版本,確認是否安裝成功

scrapy -v

輸出結果

Scrapy 1.5.1 - no active project

!安裝成功

4 Scrapy資源

官方網站

中文教程

原始碼地址

中文社群

5 擴充套件知識

Python爬蟲框架當然不這一個,其他一些框架也各有特點,只是沒有Scrapy這麼通用和流行,這裡做個簡單介紹,有興趣可以自己搜尋。

  • PySpider pyspider 是一個用python實現的功能強大的網路爬蟲系統,能在瀏覽器介面上進行指令碼的編寫,功能的排程和爬取結果的實時檢視,後端使用常用的資料庫進行爬取結果的儲存,還能定時設定任務與任務優先順序等。
  • Crawley Crawley可以高速爬取對應網站的內容,支援關係和非關係資料庫,資料可以匯出為JSON、XML等。
  • Portia Portia是一個開源視覺化爬蟲工具,可讓您在不需要任何程式設計知識的情況下爬取網站!簡單地註釋您感興趣的頁面,Portia將建立一個蜘蛛來從類似的頁面提取資料。
  • Newspaper Newspaper可以用來提取新聞、文章和內容分析。使用多執行緒,支援10多種語言等。
  • Grab Grab是一個用於構建Web刮板的Python框架。藉助Grab,您可以構建各種複雜的網頁抓取工具,從簡單的5行指令碼到處理數百萬個網頁的複雜非同步網站抓取工具。Grab提供一個API用於執行網路請求和處理接收到的內容,例如與HTML文件的DOM樹進行互動。
  • Cola Cola是一個分散式的爬蟲框架,對於使用者來說,只需編寫幾個特定的函式,而無需關注分散式執行的細節。任務會自動分配到多臺機器上,整個過程對使用者是透明的。 *