欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Scrapy?框架簡單介紹

 更新時間:2023年05月16日 11:15:59   作者:凌冰_  
Scrapy是適用于Python的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù),這篇文章主要介紹了Scrapy框架優(yōu)點及簡單介紹,需要的朋友可以參考下

一、Scrapy是什么

Scrapy 是一個基于 Twisted 的異步處理框架,是純 Python 實現(xiàn)的爬蟲框架,其架構(gòu)清晰,模塊之間的耦合程度低,可擴展性極強,可以靈活完成各種需求。我們只需要定制開發(fā)幾個模塊就可以輕松實現(xiàn)一個爬蟲。

Scrapy是適用于Python的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試。

Scrapy吸引人的地方在于它是一個框架,任何人都可以根據(jù)需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持。

二、Scrapy優(yōu)點

1、速度快

2、實現(xiàn)大批量爬取

三、Scrapy爬蟲框架的架構(gòu)

(1) Scrapy有五個部分組件組成:

中 > 引擎Scrapy Engine:用來處理整個系統(tǒng)的數(shù)據(jù)流處理、觸發(fā)事務(wù),是整個框架的核心

上 > 調(diào)度器Scheduler:用來接受引擎發(fā)過來的請求并加入隊列中,并在引擎再次請求的時候提供給引擎。

左 > 管道item pipeline:負(fù)責(zé)處理由蜘蛛從網(wǎng)頁中抽取的項目,它的主要任務(wù)是清洗、驗證和存儲數(shù)據(jù)。

下 > 爬蟲器(爬蟲組件) Spiders:其內(nèi)定義了爬取的邏輯和網(wǎng)頁的解析規(guī)則,它主要負(fù)責(zé)解析響應(yīng)并生成提取結(jié)果和新的請求。

Spider Middlewares(Spiders中間件):位于引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛輸入的響應(yīng)和輸出的結(jié)果及新的請求。

右 > 下載器 Downloader:用于下載網(wǎng)頁內(nèi)容,并將網(wǎng)頁內(nèi)容返回給Spiders爬蟲器。

Downloader Middlewares(下載器中間件):位于引擎和下載器之間的鉤子框架,主要是處理引擎與下載器之間的請求及響應(yīng)。

(2) Scrapy數(shù)據(jù)流機制:

引擎Scrapy Engine : C位,不用做事,接收任務(wù),分發(fā)任務(wù)。

爬蟲器Spiders :
1.確認(rèn)目標(biāo)url,根據(jù)這個url構(gòu)造一個request對象,交給引擎
4.接收了來自引擎的response,進(jìn)行解析,解析完畢,把結(jié)果給引擎
解析結(jié)果分為2種
--(1)如果提取出來的是url,就把所有的步驟重頭再走一遍
--(2)如果是需要進(jìn)行保存的數(shù)據(jù)data

調(diào)度器Scheduler:
2.接收了來自引擎的request對象,進(jìn)行一個排序,把排序之后的結(jié)果交給引擎(假設(shè)有100個request對象,安裝調(diào)度,安排誰先誰后).

下載器Downloader:
3.接收了來自經(jīng)過了排序之后的引擎的request對象,發(fā)送網(wǎng)絡(luò)請求獲取響應(yīng)對象response,交給引擎.

管道item pipeline:
5.接收了來自引擎的數(shù)據(jù)data,進(jìn)行保存.
通過多個組件的相互協(xié)作、不同組件完成工作的不同、組件很好地支持異步處理,scrapy 最大限度地利用了網(wǎng)絡(luò)帶寬,大大提高了數(shù)據(jù)爬取和處理的效率。

四、scrapy創(chuàng)建項目

(1) 爬蟲項目

scrapy startproject 爬蟲項目名

(2) 爬蟲任務(wù)

1. cd 到項目的根目錄

2. scrapy genspider 爬蟲任務(wù)名稱 域的范圍.com

(3)運行scrapy爬蟲

scrapy crawl 爬蟲任務(wù)名稱

(4) Scrapy創(chuàng)建結(jié)構(gòu)圖

各個文件的功能描述如下:

  • scrapy.cfg:它是 Scrapy 項目的配置文件,其內(nèi)定義了項目的配置文件路徑、部署相關(guān)信息等內(nèi)容。
  • items.py:它定義 Item 數(shù)據(jù)結(jié)構(gòu),所有的 Item 的定義都可以放這里。
  • pipelines.py:它定義 Item Pipeline 的實現(xiàn),所有的 Item Pipeline 的實現(xiàn)都可以放這里。
  • settings.py:它定義項目的全局配置。
  • middlewares.py:它定義 Spider Middlewares 和 Downloader Middlewares 的實現(xiàn)。
  • spiders:其內(nèi)包含一個個 Spider 的實現(xiàn),每個 Spider 都有一個文件。

到此這篇關(guān)于Scrapy框架介紹的文章就介紹到這了,更多相關(guān)Scrapy框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何基于Python創(chuàng)建目錄文件夾

    如何基于Python創(chuàng)建目錄文件夾

    這篇文章主要介紹了如何基于Python創(chuàng)建目錄文件夾,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python使用defaultdict讀取文件各列的方法

    Python使用defaultdict讀取文件各列的方法

    這篇文章主要介紹了Python使用defaultdict讀取文件各列的方法,涉及Python針對文件相關(guān)讀取、遍歷操作技巧,需要的朋友可以參考下
    2017-05-05
  • 利用tkinter改變下拉列表(Combobox)的選項值

    利用tkinter改變下拉列表(Combobox)的選項值

    這篇文章主要介紹了利用tkinter改變下拉列表(Combobox)的選項值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python使用datetime模塊計算各種時間間隔的方法

    python使用datetime模塊計算各種時間間隔的方法

    這篇文章主要介紹了python使用datetime模塊計算各種時間間隔的方法,實例分析了Python使用datetime模塊進(jìn)行各種常用的時間操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 詳解Python中元組的三個不常用特性

    詳解Python中元組的三個不常用特性

    元組是Python中一種重要的內(nèi)置數(shù)據(jù)類型。與列表一樣,我們經(jīng)常使用元組將多個對象保存為相應(yīng)的數(shù)據(jù)容器。本文為大家總結(jié)了元組的三個不常用特性,感興趣的小伙伴可以了解一下
    2022-07-07
  • Python讀寫unicode文件的方法

    Python讀寫unicode文件的方法

    這篇文章主要介紹了Python讀寫unicode文件的方法,涉及Python針對文件的讀取及編碼操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 使用AJAX和Django獲取數(shù)據(jù)的方法實例

    使用AJAX和Django獲取數(shù)據(jù)的方法實例

    這篇文章主要給大家介紹了關(guān)于使用AJAX和Django獲取數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • TensorFlow保存TensorBoard圖像操作

    TensorFlow保存TensorBoard圖像操作

    這篇文章主要介紹了TensorFlow保存TensorBoard圖像操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 淺析python中的二元嵌套列表分組

    淺析python中的二元嵌套列表分組

    這篇文章主要來和大家一起討論一下Python中的二元嵌套列表,并將每個嵌套列表元素相對于其其他索引元素進(jìn)行分組,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-09-09
  • Python 制作自動化翻譯工具

    Python 制作自動化翻譯工具

    這篇文章主要介紹了Python 實現(xiàn)自動化翻譯和替換的腳本,幫助大家更好的理解和學(xué)習(xí)使用python,提高辦公效率感興趣的朋友可以了解下
    2021-04-04

最新評論