溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【Python | 邊學(xué)邊敲邊記】第四次:初識(shí)爬蟲框架Scrapy

發(fā)布時(shí)間:2020-08-16 17:45:01 來(lái)源:ITPUB博客 閱讀:188 作者:極簡(jiǎn)XksA 欄目:編程語(yǔ)言


【Python | 邊學(xué)邊敲邊記】第四次:初識(shí)爬蟲框架Scrapy

一、前言

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

今天給大家分享的是,Python里的爬蟲框架Scrapy學(xué)習(xí),包含python虛擬環(huán)境的搭建、虛擬環(huán)境的使用、Scrapy安裝方法詳解、Scrapy基本使用、Scrapy項(xiàng)目目錄及內(nèi)容基本介紹,let's go!

二、Python爬蟲框架Scrapy簡(jiǎn)介

推薦查看Scrapy中文幫助文檔:點(diǎn)擊 閱讀原文 靜下心來(lái)學(xué)習(xí)!



 1


# 維基百科看Scrapy


2 '''
3 Scrapy(SKRAY -pee)是一個(gè)免費(fèi)和開源 網(wǎng)絡(luò)爬行 框架 Python編寫的。最初設(shè)計(jì)用于Web抓取,它還可
4 以用于使用API或作為通用Web爬網(wǎng)程序提取數(shù)據(jù)。它目前由網(wǎng)絡(luò)抓取開發(fā)和服務(wù)公司Scrapinghub Ltd.維護(hù)
5 。
6 Scrapy項(xiàng)目體系結(jié)構(gòu)是圍繞“Spider”構(gòu)建的,它們是自包含的爬蟲,可以獲得一組指令。遵循其他框架的精
7 神,不重復(fù)自己的框架,例如Django,它允許開發(fā)人員重用他們的代碼,從而更容易構(gòu)建和擴(kuò)展大型爬行項(xiàng)
8 目。Scrapy還提供了一個(gè)Web爬行shell,開發(fā)人員可以使用它來(lái)測(cè)試他們對(duì)站點(diǎn)行為的假設(shè)。
9 (英譯漢有點(diǎn)尷尬!真的想學(xué),還是好好看上面的幫助文檔吧)
10 '''

三、看代碼,邊學(xué)邊敲邊記虛擬環(huán)境、Scrapy框架

1.新建一個(gè)虛擬環(huán)境

下面 操作之前你需要準(zhǔn)備好:
(1) 你的 python 版本是3.x,最好系統(tǒng)里只有一個(gè)python環(huán)境,后面所有學(xué)習(xí)筆記都基于 py3 的。
(2) python 環(huán)境里先安裝 virtualenv 模塊,基本方法 pip install virtualenv 。
(3)選擇好虛擬環(huán)境的安裝目錄(我選的是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 注: 如果系統(tǒng)中有兩個(gè)python環(huán)境(py2和py3),新建基于py3的虛擬環(huán)境方法
6 virtualenv -python=你的Python3安裝目錄(精確到python.exe) spiderenv(虛擬環(huán)境名稱)

安裝完成后再自己選擇的目錄下會(huì)多出一個(gè)文件夾(虛擬環(huán)境),我這里為 H:\env\spiderenv ,后面所有爬蟲學(xué)習(xí)過程中需要的模塊、接口都將 pip (安裝)在里面。

2.打開虛擬環(huán)境,安裝Scrapy框架

進(jìn)入到目錄 H:\env\spiderenv\Scripts (我的虛擬環(huán)境目錄),按住 shift +鼠標(biāo)右鍵,打開 powershell 或者 cmd (如果是 powershell 就先輸入 cmd ),再輸入 activate ,進(jìn)入虛擬環(huán)境,你會(huì)發(fā)現(xiàn)在路徑前面多了一個(gè)括號(hào)里面是你的虛擬環(huán)境名稱,表示你進(jìn)入了虛擬環(huán)境。具體看下面:



1

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

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

安裝 scrapy 模塊(下面操作都是在虛擬環(huán)境下):
方法一:直接pip安裝(最簡(jiǎn)單,安裝慢,可能出錯(cuò))



1

pip install scrapy

方法二:輪子(wheel)安裝(比較簡(jiǎn)單,安裝速度還可以,基本不出錯(cuò))
點(diǎn)擊這里下載scrapy的 .whl 文件,然后移動(dòng)到你的虛擬環(huán)境目錄下(比如我的就移動(dòng)到 H:\env\spiderenv\Scripts ),



1

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

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



1

pip install -i https://pypi.douban.com/simple/  scrapy

3.快速進(jìn)入虛擬環(huán)境方法

安裝 virtualenvwrapper 模塊,用于管理我們所建的虛擬環(huán)境



1

# windows下安裝方法

2  pip install virtualenvwrapper-win
3 # 其他環(huán)境下安裝
4  pip install virtualenvwrapper

安裝完成后,打開 控制面板 - > 系統(tǒng) -> 高級(jí)系統(tǒng)設(shè)置 - > 環(huán)境變量 ->   系統(tǒng)變量 -> 新建 ,在 新建系統(tǒng)環(huán)境變量對(duì)話框 中輸入如下



1

變量名:WORKON_HOME

2 變量值:你的虛擬環(huán)境安裝目錄
3 比如:我的虛擬環(huán)境spiderenv安裝在H:\env目錄下,我的變量值就為:H:\env\
4 注:變量值最后一定要以 \ 結(jié)尾,不然可能不會(huì)產(chǎn)生效果。


【Python | 邊學(xué)邊敲邊記】第四次:初識(shí)爬蟲框架Scrapy

在上面設(shè)置完成后,我們?cè)? cmd 執(zhí)行下面命令,即可簡(jiǎn)單快速進(jìn)入虛擬環(huán)境:


 1

PS C:\Users\82055\Desktop> cmd

2 Microsoft Windows [版本 10.0.17134.112]
3 (c) 2018 Microsoft Corporation。保留所有權(quán)利。
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 # 注釋:成功進(jìn)入,退出虛擬環(huán)境命令為 : deactivate
4.創(chuàng)建一個(gè)基于Scrapy框架的項(xiàng)目


 1

# 進(jìn)入到自己的項(xiàng)目存放目錄

2 (spiderenv) H:\env>cd H:\spider_project
3
4 # 使用scrapy命令創(chuàng)建一個(gè)新工程
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 # 提示創(chuàng)建網(wǎng)站爬蟲命令
11 You can start your first spider with:
12     cd spider_bole_blog
13     scrapy genspider example example.com

創(chuàng)建成功后文件目錄結(jié)構(gòu):



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/: 該項(xiàng)目的python模塊。之后我們將在此加入代碼。


2 spider_bole_blog/spiders/: 放置spider代碼的目錄。
3 spider_bole_blog/items.py: 項(xiàng)目中的item文件。
4 spider_bole_blog/pipelines.py: 項(xiàng)目中的pipelines文件。
5 spider_bole_blog/settings.py: 項(xiàng)目的設(shè)置文件。
6 scrapy.cfg: 項(xiàng)目的配置文件。

創(chuàng)建一個(gè) jobbole (伯樂在線)的爬蟲項(xiàng)目文件:



1

# 進(jìn)入項(xiàng)目文件

2 (spiderenv) H:\spider_project>cd spider_bole_blog
3
4 # 執(zhí)行命令,創(chuàng)建一個(gè)基于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

執(zhí)行完成后會(huì)在項(xiàng)目的 spiders 目錄下多出一個(gè) jobbole.py 文件,文件內(nèi)容如下:



 1


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


2 # 編碼
3 import  scrapy
4 # 導(dǎo)入scrapy包
5
6 #繼承scrapy.Spider的 JobboleSpider 爬蟲類
7 class   JobboleSpider (scrapy.Spider) :
8
9      # 用于區(qū)別Spider。 該名字必須是唯一的,您不可以為不同的Spider設(shè)定相同的名字。
10     name =  'jobbole'
11
12      # 允許下載(訪問)域
13     allowed_domains = [ 'blog.jobbole.com' ]
14
15      # 包含了Spider在啟動(dòng)時(shí)進(jìn)行爬取的url列表。
16      # 因此,第一個(gè)被獲取到的頁(yè)面將是其中之一。
17      # 后續(xù)的URL則從初始的URL獲取到的數(shù)據(jù)中提取。
18     start_urls = [ 'http://blog.jobbole.com/' ]
19
20      # 是spider的一個(gè)方法。
21      # 被調(diào)用時(shí),每個(gè)初始URL完成下載后生成的 Response 對(duì)象將會(huì)作為唯一的參數(shù)傳遞給該函數(shù)。
22      # 該方法負(fù)責(zé)解析返回?cái)?shù)據(jù)(response data),提取數(shù)據(jù)(生成item)以及生成需要進(jìn)一步處理的URL
23      # 的 Request 對(duì)象。
24      def   parse (self, response) :
25          pass

四、后言

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI