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環境,這個就不用多說,自己安裝就行了

https://www.python.org/

(1) 安裝wheel

pip install wheel

(2) 安裝XML解析支持

pip install lxml

(3) 安裝對象接口庫

pip install zope.interface

(4) 安裝pyOpenSSL

pip install pyOpenSSL

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

https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

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

在這裏插入圖片描述

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

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

(6) 安裝pywin32庫

https://www.lfd.uci.edu/~gohlke/pythonlibs/#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資源

官方網站

https://scrapy.org/

中文教程

https://scrapy-chs.readthedocs.io/zh_CN/latest/index.html

源碼地址

https://github.com/scrapy/scrapy

中文社區

http://www.scrapyd.cn/

5 擴展知識

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

  • PySpider
    pyspider 是一個用python實現的功能強大的網絡爬蟲系統,能在瀏覽器界面上進行腳本的編寫,功能的調度和爬取結果的實時查看,後端使用常用的數據庫進行爬取結果的存儲,還能定時設置任務與任務優先級等。

項目地址:https://github.com/binux/pyspider

  • Crawley
    Crawley可以高速爬取對應網站的內容,支持關係和非關係數據庫,數據可以導出爲JSON、XML等。

項目地址:http://project.crawley-cloud.com/

  • Portia
    Portia是一個開源可視化爬蟲工具,可讓您在不需要任何編程知識的情況下爬取網站!簡單地註釋您感興趣的頁面,Portia將創建一個蜘蛛來從類似的頁面提取數據。

項目地址:https://github.com/scrapinghub/portia

  • Newspaper
    Newspaper可以用來提取新聞、文章和內容分析。使用多線程,支持10多種語言等。

項目地址:https://github.com/codelucas/newspaper

  • Grab
    Grab是一個用於構建Web刮板的Python框架。藉助Grab,您可以構建各種複雜的網頁抓取工具,從簡單的5行腳本到處理數百萬個網頁的複雜異步網站抓取工具。Grab提供一個API用於執行網絡請求和處理接收到的內容,例如與HTML文檔的DOM樹進行交互。

項目地址:http://docs.grablib.org/en/latest/#grab-spider-user-manual

  • Cola
    Cola是一個分佈式的爬蟲框架,對於用戶來說,只需編寫幾個特定的函數,而無需關注分佈式運行的細節。任務會自動分配到多臺機器上,整個過程對用戶是透明的。 *

項目地址:https://github.com/chineking/cola

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章