麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

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

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

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

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

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

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

  什么是Scrapy

  Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。

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

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

Picture

  Scrapy的安裝

  Windows系統:

  pip install scrapy

  如果安裝過程中出錯

  錯誤信息如下:

Picture(1)

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

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

Picture(2)

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

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

  然后再次執行:pip install scrapy

  Linux和mac系統直接:pip3 install scrapy

  scrapy工作流程

Picture(3)

  Scrapy工作流程的圖:

Picture(4)

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

  其中:

  Scrapy引擎負責控制整個數據處理流程,處于整個Scrapy框架中心位置,協調調度器、管道、中間件、下載器、爬蟲。

  調度器負責存儲等待爬取的網址,確定網址優先級,相當于一個隊列存儲,同時也會過濾一些重復的網址。

  下載器實現對等待爬取的網頁資源進行高速下載,該組件通過網絡進行大量數據傳輸,下載對應的網頁資源后將數據傳遞給Scrapy引擎,再由引擎傳遞給爬蟲處理。

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

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

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

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

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

  爬蟲中起始的url構造成request對象-->爬蟲中間件-->引擎-->調度器

  調度器把request-->引擎-->下載中間件--->下載器

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

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

  爬蟲提取數據--->引擎--->管道處理和保存數據

  每部分的具體作用

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全局命令可以在項目內外使用,而項目命令只能在Scrapy爬蟲項目中使用。

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

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

  check命令可以實現對爬蟲文件的測試

  crawl命令可以啟動某個爬蟲

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

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

  scrapy開發步驟

  創建項目:

  scrapy startproject 爬蟲項目名字

  生成一個爬蟲:

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

  提取數據:

  根據網站結構在spider中實現數據采集相關內容

  保存數據:

  使用pipeline進行數據后續處理和保存

  創建項目

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

Picture(7)

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

Picture(8)

  創建之后的爬蟲項目myproject目錄結構如下:

  項目名字/

  scrapy.cfg:

  項目名字/

  __init__.py

  items.py

  pipelines.py

  settings.py

  spiders/

  __init__.py

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

  items.py 設置數據存儲模板,用于結構化數據,如:Django的Model

  pipelines 數據持久化處理

  settings.py 配置文件,如:遞歸的層數、并發數,延遲下載等

  spiders 爬蟲目錄,如:創建文件,編寫爬蟲解析規則

  生成一個爬蟲spider

  進入剛才創建的爬蟲項目myproject目錄

Picture(9)

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

Picture(10)

  編寫爬蟲

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

Picture(11)

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

Picture(12)

  保存數據

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

  定義一個管道類

  重寫管道類的process_item方法

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

Picture(13)

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

  ITEM_PIPELINES = {

  'myproject.pipelines.MyprojectPipeline': 400,

  }

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

  配置項中值為管道的使用順序,設置的數值約小越優先執行,該值一般設置為1000以內。

  運行scrapy

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

  示例:scrapy crawl qiubai

Picture(14)

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

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您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
主站蜘蛛池模板: 动漫美女被到爽了流漫画| 男女一边做一边爽免费视频| 天堂网欧美| 可以免费观看一级毛片黄a| 国产精品播放| 国产一级片观看| 台湾一级淫片高清视频| 日本tvvivodes人妖| 国产精华av午夜在线观看| 无毒不卡在线观看| 中国武警gaysexchina武警gay| 国产波多野结衣中文在线播放| 久久国产欧美日韩精品| 亚洲免费视频观看| 在线观看一级毛片免费| 波多野结衣新婚被邻居| 国色天香精品一卡2卡3卡| 国产馆在线观看免费的 | 再深点灬舒服灬太大了爽| 一个人看的www片免费| 色老头综合免费视频| 伊人一本之道| 久久不见久久见免费影院www日本| 精品在线一区二区| 护士的小嫩嫩好紧好爽在线播放| 露点的诱惑| 印度爱经hd在线观看| 男人桶女人叽叽| 国产黄色片91| 一道本免费视频| 国产亚洲美女精品久久久久| 乱亲玉米地初尝云雨| 欧美日韩亚洲视频| t66y最新地址一地址二地址三| 被男按摩师添的好爽在线直播| 猫扑两性色午夜视频免费| 亚洲噜噜噜噜噜影院在线播放| 一级做a爱片久久毛片| 日韩午夜视频在线观看| 狼群视频在线观看www| 欧美乱大交|