国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術(shù)干貨  > 20天學會爬蟲之Scrapy框架介紹

            20天學會爬蟲之Scrapy框架介紹

            來源:千鋒教育
            發(fā)布人:qyf
            時間: 2022-09-19 17:49:00 1663580940

              什么是Scrapy

              Scrapy是一個為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應用框架。

              框架就是將平常寫爬蟲的request (異步調(diào)度和處理)、下載器(多線程的 Downloader)、解析器(selector)和 twisted(異步處理)封裝到了一起,夠成了框架。而且使用起來更加方便,爬取速度更快。

              Scrapy框架的應用領域有很多,例如網(wǎng)絡爬蟲開發(fā)、數(shù)據(jù)挖掘、自動化測試等,其最初是為了頁面抓取(網(wǎng)絡抓取)所設計的,也可以應用在獲取API所返回的數(shù)據(jù)或者通用的網(wǎng)絡爬蟲。官方網(wǎng)址是https://scrapy.org/

            Picture

              Scrapy的安裝

              Windows系統(tǒng):

              pip install scrapy

              如果安裝過程中出錯

              錯誤信息如下:

            Picture(1)

              則需要安裝Microsoft Visual C++14,如果報錯不是Microsoft Visual C++14比如Microsoft Visual C++15則對應安裝即可。

              如果安裝過程中過提示安裝Twisted安裝失敗,則需要來到這個網(wǎng)址:https://www.lfd.uci.edu/~gohlke/pythonlibs/自行下載wheel文件,

            Picture(2)

              可能需要下載的是:pyOpenSSL、Twisted、PyWin32,可以根據(jù)安裝時,報錯的提示信息有針對性的下載。

              下載之后放到一個固定的目錄中,進入下載的目錄。執(zhí)行 pip3 install xxxxxx.whl (注意xxxxxx代表的是你下載的wheel的名字)

              然后再次執(zhí)行:pip install scrapy

              Linux和mac系統(tǒng)直接:pip3 install scrapy

              scrapy工作流程

            Picture(3)

              Scrapy工作流程的圖:

            Picture(4)

              在圖中,Scrapy引擎是架構(gòu)的核心部分,調(diào)度器、管道、下載器和Spiders等組件都通過引擎來調(diào)控。在Scrapy引擎和下載器中間通過中間件傳遞信息,在下載中間件中,可以插入自定義代碼擴展Scrapy的功能,例如實現(xiàn)IP池的應用。引擎和Spiders之間也是通過爬蟲中間件來傳遞信息,同樣可以自定義擴展功能。

              其中:

              Scrapy引擎負責控制整個數(shù)據(jù)處理流程,處于整個Scrapy框架中心位置,協(xié)調(diào)調(diào)度器、管道、中間件、下載器、爬蟲。

              調(diào)度器負責存儲等待爬取的網(wǎng)址,確定網(wǎng)址優(yōu)先級,相當于一個隊列存儲,同時也會過濾一些重復的網(wǎng)址。

              下載器實現(xiàn)對等待爬取的網(wǎng)頁資源進行高速下載,該組件通過網(wǎng)絡進行大量數(shù)據(jù)傳輸,下載對應的網(wǎng)頁資源后將數(shù)據(jù)傳遞給Scrapy引擎,再由引擎?zhèn)鬟f給爬蟲處理。

              下載中間件用于處理下載器與Scrapy引擎之間的通信,自定義代碼可以輕松擴展Scrapy框架的功能

              Spiders是實現(xiàn)Scrapy框架爬蟲的核心部分。每個爬蟲負責一個或多個指定的網(wǎng)站。爬蟲組件負責接收Scrapy引擎中的Response響應,接收到響應后分析處理,提取對應重要信息

              爬蟲中間件是處理爬蟲組件和Scrapy引擎之間通信的組件,可以自定義代碼擴展Scrapy功能

              管道用于接收從爬蟲組件中提取的管道,接收到后進行清洗、驗證、存儲等系列操作

              因此其流程可以描述如下:

              爬蟲中起始的url構(gòu)造成request對象-->爬蟲中間件-->引擎-->調(diào)度器

              調(diào)度器把request-->引擎-->下載中間件--->下載器

              下載器發(fā)送請求,獲取response響應---->下載中間件---->引擎--->爬蟲中間件--->爬蟲

              爬蟲提取url地址,組裝成request對象---->爬蟲中間件--->引擎--->調(diào)度器,重復步驟2

              爬蟲提取數(shù)據(jù)--->引擎--->管道處理和保存數(shù)據(jù)

              每部分的具體作用

            Picture(5)

              scrapy常用命令

              scrapy后面可以跟不同的命令,可以使用scrapy --help進行查看,Scrapy框架中命令分為全局命令和項目命令,全局命令不需要進入Scrapy項目即可在全局中直接運行,項目命令必須在Scrapy項目中才可以運行。

            Picture(6)

              其中:

              全局命令:

              fetch命令是用來檢查spider下載頁面的方式

              runspider命令通過Scrapy中的runspider命令可以直接運行一個爬蟲文件

              settings命令是用來獲取Scrapy的配置信息。

              shell命令可以啟動Scrapy的交互終端

              version命令用于查看Scrapy的版本信息

              項目命令:

              Scarpy的項目命令主要有bench、check、crawl、edit、genspider、list、parse。Scrapy全局命令可以在項目內(nèi)外使用,而項目命令只能在Scrapy爬蟲項目中使用。

              bench命令可以測試本地硬件的性能。

              genspider命令可以創(chuàng)建Scrapy爬蟲文件,這是一種快速創(chuàng)建爬蟲文件的方法

              check命令可以實現(xiàn)對爬蟲文件的測試

              crawl命令可以啟動某個爬蟲

              list命令可以列出當前可使用的爬蟲文件

              parse命令可以獲取指定的URL網(wǎng)址,并使用對應的爬蟲文件分析處理

              scrapy開發(fā)步驟

              創(chuàng)建項目:

              scrapy startproject 爬蟲項目名字

              生成一個爬蟲:

              scrapy genspider <爬蟲名字> <允許爬取的域名>

              提取數(shù)據(jù):

              根據(jù)網(wǎng)站結(jié)構(gòu)在spider中實現(xiàn)數(shù)據(jù)采集相關內(nèi)容

              保存數(shù)據(jù):

              使用pipeline進行數(shù)據(jù)后續(xù)處理和保存

              創(chuàng)建項目

              使用Scrapy創(chuàng)建一個爬蟲項目,首先需要進入存儲爬蟲項目的文件夾,例如在“D:\python_spider”目錄中創(chuàng)建爬蟲項目,如圖所示。

            Picture(7)

              當然如果你是Linux或者mac系統(tǒng)也需要進入存儲爬蟲項目的文件夾,然后新建項目

            Picture(8)

              創(chuàng)建之后的爬蟲項目myproject目錄結(jié)構(gòu)如下:

              項目名字/

              scrapy.cfg:

              項目名字/

              __init__.py

              items.py

              pipelines.py

              settings.py

              spiders/

              __init__.py

              scrapy.cfg 項目的主配置信息。(真正爬蟲相關的配置信息在settings.py文件中)

              items.py 設置數(shù)據(jù)存儲模板,用于結(jié)構(gòu)化數(shù)據(jù),如:Django的Model

              pipelines 數(shù)據(jù)持久化處理

              settings.py 配置文件,如:遞歸的層數(shù)、并發(fā)數(shù),延遲下載等

              spiders 爬蟲目錄,如:創(chuàng)建文件,編寫爬蟲解析規(guī)則

              生成一個爬蟲spider

              進入剛才創(chuàng)建的爬蟲項目myproject目錄

            Picture(9)

              然后執(zhí)行: scrapy genspider 應用名稱 爬取網(wǎng)頁的起始url (見下圖的3部分)

            Picture(10)

              編寫爬蟲

              在生成一個爬蟲執(zhí)行完畢后,會在項目的spiders中生成一個應用名的py爬蟲文件

            Picture(11)

              打開文件進行代碼編寫,大家看到的是默認的格式,可以在parse方法中完善爬蟲代碼

            Picture(12)

              保存數(shù)據(jù)

              數(shù)據(jù)的保存需要使用管道pipline,在pipelines.py文件中定義對數(shù)據(jù)的操作

              定義一個管道類

              重寫管道類的process_item方法

              process_item方法處理完item之后必須返回給引擎

            Picture(13)

              然后在settings.py配置啟用管道

              ITEM_PIPELINES = {

              'myproject.pipelines.MyprojectPipeline': 400,

              }

              配置項中鍵為使用的管道類,管道類使用.進行分割,第一個為項目目錄,第二個為文件,第三個為定義的管道類。

              配置項中值為管道的使用順序,設置的數(shù)值約小越優(yōu)先執(zhí)行,該值一般設置為1000以內(nèi)。

              運行scrapy

              命令:在項目目錄下執(zhí)行scrapy crawl <爬蟲名字>

              示例:scrapy crawl qiubai

            Picture(14)

              當然本次只是給大家描述了一下爬蟲中使用scrapy的基本步驟,20天學會爬蟲后面會接連介紹scrapy的使用,敬請期待哦!

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT
            快速通道