【Python | 邊學邊敲邊記】第四次:初識爬蟲框架Scrapy

極簡XksA發表於2018-10-12


【Python | 邊學邊敲邊記】第四次:初識爬蟲框架Scrapy

一、前言

本系列上一篇:【Python | 邊學邊敲邊記】第三次:URL去重策略

今天給大家分享的是,Python裡的爬蟲框架Scrapy學習,包含python虛擬環境的搭建、虛擬環境的使用、Scrapy安裝方法詳解、Scrapy基本使用、Scrapy專案目錄及內容基本介紹,let's go!

二、Python爬蟲框架Scrapy簡介

推薦檢視Scrapy中文幫助文件:點選 閱讀原文 靜下心來學習!



 1


# 維基百科看Scrapy


2 '''
3 Scrapy(SKRAY -pee)是一個免費和開源 網路爬行 框架 Python編寫的。最初設計用於Web抓取,它還可
4 以用於使用API或作為通用Web爬網程式提取資料。它目前由網路抓取開發和服務公司Scrapinghub Ltd.維護
5
6 Scrapy專案體系結構是圍繞“Spider”構建的,它們是自包含的爬蟲,可以獲得一組指令。遵循其他框架的精
7 神,不重複自己的框架,例如Django,它允許開發人員重用他們的程式碼,從而更容易構建和擴充套件大型爬行項
8 目。Scrapy還提供了一個Web爬行shell,開發人員可以使用它來測試他們對站點行為的假設。
9 (英譯漢有點尷尬!真的想學,還是好好看上面的幫助文件吧)
10 '''

三、看程式碼,邊學邊敲邊記虛擬環境、Scrapy框架

1.新建一個虛擬環境

下面 操作之前你需要準備好:
(1) 你的 python 版本是3.x,最好系統裡只有一個python環境,後面所有學習筆記都基於 py3 的。
(2) python 環境裡先安裝 virtualenv 模組,基本方法 pip install virtualenv
(3)選擇好虛擬環境的安裝目錄(我選的是H盤目錄下的 env 資料夾,建議你選的目錄路徑裡最好不要有中文)。



1

PS H:\env\> virtualenv spiderenv

2 Using base prefix 'c:\\users\\82055\\appdata\\local\\programs\\python\\python36'
3 New python executable in H:\env\spiderenv\Scripts\python.exe
4 Installing setuptools, pip, wheel...done.
5 注: 如果系統中有兩個python環境(py2和py3),新建基於py3的虛擬環境方法
6 virtualenv -python=你的Python3安裝目錄(精確到python.exe) spiderenv(虛擬環境名稱)

安裝完成後再自己選擇的目錄下會多出一個資料夾(虛擬環境),我這裡為 H:\env\spiderenv ,後面所有爬蟲學習過程中需要的模組、介面都將 pip (安裝)在裡面。

2.開啟虛擬環境,安裝Scrapy框架

進入到目錄 H:\env\spiderenv\Scripts (我的虛擬環境目錄),按住 shift +滑鼠右鍵,開啟 powershell 或者 cmd (如果是 powershell 就先輸入 cmd ),再輸入 activate ,進入虛擬環境,你會發現在路徑前面多了一個括號裡面是你的虛擬環境名稱,表示你進入了虛擬環境。具體看下面:



1

# 注:開啟powershell 的可以參照下面操作

2 PS H:\env\spiderenv\Scripts> cmd
3 Microsoft Windows [版本 10.0.17134.112]
4 (c) 2018 Microsoft Corporation。保留所有權利。
5
6 H:\env\spiderenv\Scripts>activate
7 (spiderenv) H:\spiderenv\Scripts>

安裝 scrapy 模組(下面操作都是在虛擬環境下):
方法一:直接pip安裝(最簡單,安裝慢,可能出錯)



1

pip install scrapy

方法二:輪子(wheel)安裝(比較簡單,安裝速度還可以,基本不出錯)
點選這裡下載scrapy的 .whl 檔案,然後移動到你的虛擬環境目錄下(比如我的就移動到 H:\env\spiderenv\Scripts ),



1

pip install Scrapy-1.5.1-py2.py3-none-any.whl

方法三:豆瓣源安裝(比較簡單,安裝速度快,方便,推薦)



1

pip install -i 

3.快速進入虛擬環境方法

安裝 virtualenvwrapper 模組,用於管理我們所建的虛擬環境



1

# windows下安裝方法

2  pip install virtualenvwrapper-win
3 # 其他環境下安裝
4  pip install virtualenvwrapper

安裝完成後,開啟 控制皮膚 - > 系統 -> 高階系統設定 - > 環境變數 ->   系統變數 -> 新建 ,在 新建系統環境變數對話方塊 中輸入如下



1

變數名:WORKON_HOME

2 變數值:你的虛擬環境安裝目錄
3 比如:我的虛擬環境spiderenv安裝在H:\env目錄下,我的變數值就為:H:\env\
4 注:變數值最後一定要以 \ 結尾,不然可能不會產生效果。


【Python | 邊學邊敲邊記】第四次:初識爬蟲框架Scrapy

在上面設定完成後,我們在 cmd 執行下面命令,即可簡單快速進入虛擬環境:


 1

PS C:\Users\82055\Desktop> cmd

2 Microsoft Windows [版本 10.0.17134.112]
3 (c) 2018 Microsoft Corporation。保留所有權利。
4
5 C:\Users\82055\Desktop>workon
6
7 Pass a name to activate one of the following virtualenvs:
8 ==============================================================================
9 spiderenv
10
11 C:\Users\82055\Desktop>workon spiderenv
12 (spiderenv) C:\Users\82055\Desktop>
13 # 註釋:成功進入,退出虛擬環境命令為 : deactivate
4.建立一個基於Scrapy框架的專案


 1

# 進入到自己的專案存放目錄

2 (spiderenv) H:\env>cd H:\spider_project
3
4 # 使用scrapy命令建立一個新工程
5 (spiderenv) H:\spider_project>scrapy startproject spider_bole_blog
6
7 New Scrapy project 'spider_bole_blog', using template directory 'h:\\env\\spiderenv\\
8 lib\\site-packages\\scrapy\\templates\\project', created in:
9     H:\spider_project\spider_bole_blog
10 # 提示建立網站爬蟲命令
11 You can start your first spider with:
12     cd spider_bole_blog
13     scrapy genspider example example.com

建立成功後檔案目錄結構:



1

spider_bole_blog/

2     spider_bole_blog/
3             spiders/
4                 __init__.py
5             __init__.py
6             items.py
7             pipelines.py
8             settings.py
9     scrapy.cfg   

目錄功能基本介紹:



1


spider_bole_blog/: 該專案的python模組。之後我們將在此加入程式碼。


2 spider_bole_blog/spiders/: 放置spider程式碼的目錄。
3 spider_bole_blog/items.py: 專案中的item檔案。
4 spider_bole_blog/pipelines.py: 專案中的pipelines檔案。
5 spider_bole_blog/settings.py: 專案的設定檔案。
6 scrapy.cfg: 專案的配置檔案。

建立一個 jobbole (伯樂線上)的爬蟲專案檔案:



1

# 進入專案檔案

2 (spiderenv) H:\spider_project>cd spider_bole_blog
3
4 # 執行命令,建立一個基於Srapy的伯樂線上的爬蟲
5 (spiderenv) H:\spider_project\spider_bole_blog>scrapy genspider jobbole blog.jobbole.com
6
7 Created spider 'jobbole' using template 'basic' in module:
8   spider_bole_blog.spiders.jobbole

執行完成後會在專案的 spiders 目錄下多出一個 jobbole.py 檔案,檔案內容如下:



 1


# -*- coding: utf-8 -*-        


2 # 編碼
3 import  scrapy
4 # 匯入scrapy包
5
6 #繼承scrapy.Spider的 JobboleSpider 爬蟲類
7 class   JobboleSpider (scrapy.Spider) :
8
9      # 用於區別Spider。 該名字必須是唯一的,您不可以為不同的Spider設定相同的名字。
10     name =  'jobbole'
11
12      # 允許下載(訪問)域
13     allowed_domains = [ 'blog.jobbole.com' ]
14
15      # 包含了Spider在啟動時進行爬取的url列表。
16      # 因此,第一個被獲取到的頁面將是其中之一。
17      # 後續的URL則從初始的URL獲取到的資料中提取。
18     start_urls = [ 'http://blog.jobbole.com/' ]
19
20      # 是spider的一個方法。
21      # 被呼叫時,每個初始URL完成下載後生成的 Response 物件將會作為唯一的引數傳遞給該函式。
22      # 該方法負責解析返回資料(response data),提取資料(生成item)以及生成需要進一步處理的URL
23      # 的 Request 物件。
24      def   parse (self, response) :
25          pass

四、後言

    今天講的東西涵蓋面還比較廣,特別是虛擬環境管理這塊, virtualenvwrapper 還有很多命令,很實用,後面會慢慢給大家提及,大家也可以自己百度、谷歌查一下,另外, Scrapy 模組今天也算正式開始,go on!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556503/viewspace-2216251/,如需轉載,請註明出處,否則將追究法律責任。

相關文章