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庫
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資源
官方網站
中文教程
源碼地址
中文社區
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樹進行交互。
項目地址:http://docs.grablib.org/en/latest/#grab-spider-user-manual
- Cola
Cola是一個分佈式的爬蟲框架,對於用戶來說,只需編寫幾個特定的函數,而無需關注分佈式運行的細節。任務會自動分配到多臺機器上,整個過程對用戶是透明的。 *