国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

scrapy入門

CrazyCodes / 1375人閱讀

摘要:快速入門首先,初步要做的就是快速構(gòu)建一個爬蟲。然后把結(jié)果加入到一個隊列中。既然是入門,我們肯定是先關(guān)心我們需要的。

因為公司項目需求,需要做一個爬蟲。所以我一個python小白就被拉去做了爬蟲。花了兩周時間,拼拼湊湊總算趕出來了。所以寫個blog做個記錄。
快速入門

首先,初步要做的就是快速構(gòu)建一個爬蟲。

配置環(huán)境 Mac下安裝

1) 直接從官網(wǎng)下載
python下載官網(wǎng)

2) 是通過brew安裝
首先安裝xcode
可以選擇在App Store安裝或者使用xcode-select --install這個命令安裝

接著安裝brew

usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

把這個命令輸入終端運行就可以安裝了
brew官網(wǎng)

接著利用brew安裝python3
brew install python3

安裝完python3以后,我們來裝scrapy。因為python3是自帶pip3的,
所以如果找不到該命令的話,可以去看看python3的安裝路徑。brew是將其安裝在了usrlocalin這個目錄下。

如果pip沒安裝上的話,不要慌。我們還可以通過命令來安裝

curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

接下來安裝scrapy
輸入命令pip3 install Scrapy就可以了

windows下安裝

首先從官網(wǎng)上下載msi文件
在安裝選項中勾選上需要pip

然后在cmd中輸入
pip3 install Scrapy

完成

Linux安裝
sudo get-apt install python36 python36-devel gcc
sudo pip3 install Scrapy

兩條命令就搞定了。
因為我的爬蟲是跑在docker上,有些鏡像可能沒有g(shù)cc。所以需要devel和gcc,否則有些包會安不上。切記

Redhat系的話,只需要把get-apt改成yum就可以了


快速開始

建立項目 scrapy startproject demo

建立爬蟲 scrapy genspider demo_spider www.google.com

啟動爬蟲 scrapy crwal demo_spider

當你建立完項目的時候,scrapy會幫你生成一堆文件。

目錄結(jié)構(gòu)是這樣的

在你的demo項目中,會有個scrapy.cfg的配置文件和一個demo的文件夾

scrapy.cfg這個文件我們先暫時不去關(guān)心。我們來關(guān)心一下demo文件夾下的東西
分別是items.py,middlewares.py,pipelines.py,settings.py和一個spiders文件夾。

接著我們?nèi)?b>spiders目錄下去創(chuàng)建一個爬蟲scrapy genspider demo_spider www.google.com

OK,爬蟲生成功了。


spider初步解析

我們來初步解析一下這個爬蟲。
有一個DemoSpiderSpider的類。很明顯,這個是我們剛才生成爬蟲的名字為demo_spider然后后面又添加了一個Spider。

接著往下看,有個name的屬性,這個屬性很重要,我們到時候啟動爬蟲的時候,就要通過這個name來告知scarpy啟動的是哪個爬蟲

allowed_demains是用來指定,我們只爬取哪些域名下的。比如說,我在爬取google的搜索結(jié)果的時候,會爬到很多別的網(wǎng)站,這個屬性就是用來告知,除了www.google.com以外的,我都不爬取。

start_urls是用來做啟動url,看命名就知道了。可以把Scrapy的爬取過程看成一個廣度搜索。所以它會先迅速把start_urls下的所有url都爬取一遍。然后把結(jié)果加入到一個隊列中。也是因為這個原因,所以在做并發(fā)爬蟲時,會讓不同的爬蟲的start_urls不一樣。當然還有重復(fù)的問題要解決(笑)

接下來就是parse方法了,我們對頁面的爬取也是在這個parse中解決


向外走

初步理解了spider,我們往外層走。

我們首先來假想幾個問題,如果我是Scrapy框架的設(shè)計者,我會這么設(shè)計這個框架。
既然是通用的爬蟲框架,那用戶是不是應(yīng)該可以操作header之類的,讓我的每一個爬蟲都經(jīng)過代理,或者是設(shè)置不同的cookie。

當當當,所以就有了中間件。middlewares.py
我們來看看Scrapy生成的是什么樣的。

既然是入門,我們肯定是先關(guān)心我們需要的。看第二張圖。有這么幾個干方法process_request,process_response,process_exception
處理request,response,exception。很好,我們就要這幾個東西。

我們可以這么理解,我們的爬蟲爬到的每一個頁面,都會經(jīng)過這些中間件。

來看看架構(gòu)圖

所以我們的數(shù)據(jù)是經(jīng)過每一個中間件。然后中間件來決定去留。

然后我們來想想具體process_request下的情況。

第一種,我修改了代理,但是我只是改了代理,我還需要把這個數(shù)據(jù)繼續(xù)下去。返回None

第二種,這個已經(jīng)處理好了,現(xiàn)在我需要想直接把數(shù)據(jù)發(fā)給spider了,這個時候,我們就需要返回一個response了。

第三種,我想要重新調(diào)度我的request.這時候只要返回request。調(diào)度器會終止process_request,然后用這個request重新開始。

第四種,這個數(shù)據(jù)我直接丟棄了,不想用了。直接raise一個IgnoreRequest,也就是,如果你不處理這個異常,這異常就直接扔了。當然,你還可以選擇在process_exception去處理這個異常

Python爬蟲從入門到放棄(十七)之 Scrapy框架中Download Middleware用法


初步理解了中間件,我們來說說items
spider處理完數(shù)據(jù)以后,寫入item中,然后就來到了這兒。
scrapy生成的代碼

怎么用呢。舉個例子,我在spider中需要存儲url。于是我在這個文件中就寫入
url = scrapy.Field
接著在spider中生成這個item。然后將item["url"] = url,在處理完了以后。yield item
完成

這個數(shù)據(jù)呢,就會交給pipelines來處理


接著,我們來看看pipelines

我們和剛才一樣,思考一下,數(shù)據(jù)拿過來有幾種可能。

數(shù)據(jù)不是我的,我不處理。OK,我直接返回itme

數(shù)據(jù)是我的,但是數(shù)據(jù)錯了。扔掉。raise一個DropItem就可以了

這邊呢,如果要寫入數(shù)據(jù)庫,玩玩寫入的時間特別長,所以推薦使用Twisted來做一個異步寫入


最后。我們來看看settings

配置文件,比如是否遵守robots.txt之類的。當然,你剛才寫的所有middlewarespipelines。都要在這兒注冊!!!!隨便給它一個不重復(fù)的數(shù)字就好了


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42263.html

相關(guān)文章

  • Scrapy學(xué)習(xí)(二) 入門

    摘要:快速入門接上篇學(xué)習(xí)一安裝,安裝后,我們利用一個簡單的例子來熟悉如何使用創(chuàng)建一個爬蟲項目。創(chuàng)建一個項目在已配置好的環(huán)境下輸入系統(tǒng)將在當前目錄生成一個的項目文件。這部分才是業(yè)務(wù)的核心部分。提取的方式有幾種。具體代碼詳見入門項目 快速入門 接上篇Scrapy學(xué)習(xí)(一) 安裝,安裝后,我們利用一個簡單的例子來熟悉如何使用Scrapy創(chuàng)建一個爬蟲項目。 創(chuàng)建一個Scrapy項目 在已配置好的環(huán)境...

    Astrian 評論0 收藏0
  • 基于 Python 的 Scrapy 爬蟲入門:環(huán)境搭建

    摘要:一基礎(chǔ)環(huán)境由于不是職業(yè)的開發(fā)者,因此環(huán)境是基于的。二安裝打開命令行工具創(chuàng)建虛擬環(huán)境,默認情況下會創(chuàng)建目錄,所有的虛擬環(huán)境都會產(chǎn)生一個子目錄保存在此,里面包含基本程序文件以及庫文件。 目錄 基于 Python 的 Scrapy 爬蟲入門:環(huán)境搭建 基于 Python 的 Scrapy 爬蟲入門:頁面提取 基于 Python 的 Scrapy 爬蟲入門:圖片處理 作為一個全棧工程師(...

    Gu_Yan 評論0 收藏0
  • Scrapy入門程序點評

    摘要:本文大部分內(nèi)容摘抄自官網(wǎng)的,看到巧妙之處則加了點評。,接下來的工作至此,框架已經(jīng)明確選定了,接下來,我們將進一步研讀的文檔,研究怎樣把的封裝成需要的。,文檔修改歷史,首次發(fā)布 showImg(https://segmentfault.com/img/bVx6ZU); 1,引言 在《Scrapy的架構(gòu)初探》一文,我基于爬蟲開發(fā)的經(jīng)驗對Scrapy官網(wǎng)文章作了點評和解讀,事件驅(qū)動的異步處理...

    baiy 評論0 收藏0
  • scrapy入門:豆瓣電影top250爬取

    摘要:本文內(nèi)容爬取豆瓣電影頁面內(nèi)容,字段包含排名,片名,導(dǎo)演,一句話描述有的為空,評分,評價人數(shù),上映時間,上映國家,類別抓取數(shù)據(jù)存儲介紹爬蟲框架教程一入門創(chuàng)建項目創(chuàng)建爬蟲注意,爬蟲名不能和項目名一樣應(yīng)對反爬策略的配置打開文件,將修改為。 本文內(nèi)容 爬取豆瓣電影Top250頁面內(nèi)容,字段包含:排名,片名,導(dǎo)演,一句話描述 有的為空,評分,評價人數(shù),上映時間,上映國家,類別 抓取數(shù)據(jù)存儲 ...

    xialong 評論0 收藏0
  • scrapy 自學(xué)入門demo分享

    摘要:本文基于,平臺完整項目代碼安裝安裝官網(wǎng)下載注意環(huán)境變量是否配置成功安裝為了安裝順利,請備好梯子安裝過程中注意以下報錯信息解決辦法下載對應(yīng)版本的文件表示版本表示位下載后在文件目錄下執(zhí)行文件名創(chuàng)建項目創(chuàng)建創(chuàng)建在項目跟目錄執(zhí)行配置文件 本文基于python 3.7.0,win10平臺; 2018-08完整項目代碼:https://github.com/NameHewei/python-scr...

    linkFly 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<