国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

爬蟲工作量由小到大的思維轉(zhuǎn)變---<第三十六章 Scrapy 關(guān)于CrawlSpider引發(fā)的議題>

這篇具有很好參考價(jià)值的文章主要介紹了爬蟲工作量由小到大的思維轉(zhuǎn)變---<第三十六章 Scrapy 關(guān)于CrawlSpider引發(fā)的議題>。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:

因?yàn)閟crapy-redis里面有兩個(gè)spider,一個(gè)basespider,一個(gè)crawlspider;有人分不清他們的區(qū)別;本文就來掰一掰他們的事;

正文:

`CrawlSpider` 和 `Spider` 是兩個(gè)不同的爬蟲類,具有以下區(qū)別:

  • 1. `Spider` 類:`Spider` 是 Scrapy 中最基本的爬蟲類。你可以從 `scrapy.Spider` 類派生出自定義的爬蟲類。在基本的 `Spider` 類中,你需要定義 `start_urls` 和 `parse` 方法來指定起始 URL 和解析響應(yīng)的邏輯。`Spider` 類提供了基礎(chǔ)的請(qǐng)求發(fā)送和響應(yīng)處理功能,并在需要時(shí)提供了回調(diào)函數(shù)來處理解析和處理響應(yīng)的邏輯。
  • 2. `CrawlSpider` 類:`CrawlSpider` 是 Scrapy 提供的高級(jí)爬蟲類之一,它是基于 `Spider` 類的擴(kuò)展。`CrawlSpider` 類提供了更方便的機(jī)制用于定義和跟蹤規(guī)則(rules),使得爬取復(fù)雜網(wǎng)站的操作更加簡(jiǎn)單。通過在 `CrawlSpider` 類中定義 `rules` 屬性和回調(diào)函數(shù),你可以指定抓取頁面的鏈接和數(shù)據(jù)提取規(guī)則。`CrawlSpider` 能夠自動(dòng)根據(jù)規(guī)則解析鏈接并深度優(yōu)先進(jìn)行爬取。

`Spider` 類是 Scrapy 中最基本的爬蟲類,提供了處理請(qǐng)求和解析響應(yīng)的基本功能。而 `CrawlSpider` 類是基于 `Spider` 類的擴(kuò)展,提供了更方便的機(jī)制用于定義和跟蹤規(guī)則,使得爬取復(fù)雜網(wǎng)站的操作更加簡(jiǎn)單。如果你的爬蟲需要根據(jù)特定的規(guī)則進(jìn)行鏈接提取和頁面抓取,`CrawlSpider` 類可能是更適合的選擇。但如果你只需要簡(jiǎn)單的頁面抓取和數(shù)據(jù)提取,`Spider` 類已經(jīng)足夠了。

------------也就是說,最大的區(qū)別就是個(gè)rules!!

那么,

rules的優(yōu)勢(shì)在哪?

  • 當(dāng)使用 CrawlSpider 類和 rules 規(guī)則時(shí),能夠更方便地定義和管理頁面的抓取規(guī)則,從而簡(jiǎn)化爬蟲的編寫和維護(hù)過程。
  • 相比于不使用 CrawlSpider 和 rules 的情況,使用規(guī)則的優(yōu)勢(shì)包括規(guī)則的自動(dòng)化處理、鏈接提取、跟進(jìn)和頁面的解析,減少了手動(dòng)編寫大量重復(fù)代碼的工作量。

案例:

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

class QuotesCrawler(CrawlSpider):
    name = "quotes_crawler"
    start_urls = ["http://quotes.toscrape.com/"]
    allowed_domains = ["quotes.toscrape.com"]
    
    rules = (
        Rule(LinkExtractor(restrict_xpaths="http://a[@class='tag']"), follow=True),
        Rule(LinkExtractor(restrict_xpaths="http://div[@class='quote']/span/a"), callback='parse_quote'),
    )
    
    def parse_quote(self, response):
        quote = {
            'text': response.xpath("http://h1/text()").get(),
            'author': response.xpath("http://h3/text()").get(),
            'tags': response.xpath("http://div[@class='tags']/a/text()").getall(),
        }
        yield quote
案例講解:

我們創(chuàng)建了一個(gè)名為 QuotesCrawler 的爬蟲類,繼承自 CrawlSpider。我們的目標(biāo)是爬取名言網(wǎng)站(http://quotes.toscrape.com/)上的名言和標(biāo)簽。

  • start_urls:起始 URL,設(shè)置為名言網(wǎng)站的首頁。
  • allowed_domains:限制爬蟲只在該域名下進(jìn)行爬取。
  • rules:定義了兩個(gè)規(guī)則。
  • 第一個(gè)規(guī)則使用 LinkExtractor 和 restrict_xpaths,提取標(biāo)簽頁面的鏈接,并通過 follow=True 讓爬蟲跟進(jìn)這些鏈接。
  • 第二個(gè)規(guī)則使用 LinkExtractor 和 restrict_xpaths,提取名言詳情頁面的鏈接,并通過 callback='parse_quote' 指定回調(diào)函數(shù)處理這些頁面。
  • parse_quote:作為回調(diào)函數(shù),解析名言詳情頁面的響應(yīng),提取名言的文本、作者和標(biāo)簽,并以字典形式返回。

通過使用 CrawlSpider 和 rules,我們只需定義規(guī)則和回調(diào)函數(shù),而無需編寫大量的鏈接提取和跟進(jìn)的代碼。這樣,Scrapy 會(huì)自動(dòng)根據(jù)規(guī)則進(jìn)行頁面抓取和處理,大大減少了編寫重復(fù)代碼的工作量。同時(shí),當(dāng)網(wǎng)站結(jié)構(gòu)變化時(shí),我們只需修改規(guī)則,而不是整個(gè)爬蟲邏輯。

--------也就是說,crawlspider的一個(gè)rules能減少抓取數(shù)據(jù)的代碼量,方便管理;補(bǔ):可能前些年還好,現(xiàn)在越來越多的網(wǎng)站開始各種css渲染/js渲染生成頁面數(shù)據(jù),你真用rules去搞,抓出來的好多都牛頭不對(duì)馬嘴; ?

延伸一個(gè)知識(shí)點(diǎn):

鏈接跟進(jìn)(啟用 `follow=True`)的優(yōu)劣勢(shì):
  • - 優(yōu)點(diǎn):
    • ? - 抓取更多頁面:鏈接跟進(jìn)可以使爬蟲抓取到更多相關(guān)的頁面,尤其是對(duì)于有關(guān)聯(lián)關(guān)系的頁面,如列表頁和詳情頁。
    • ? - 遞歸爬?。和ㄟ^跟進(jìn)鏈接,可以實(shí)現(xiàn)遞歸爬取,深入地獲取更多內(nèi)容和數(shù)據(jù)。
    • ? - 更新抓取的數(shù)據(jù):可以通過跟進(jìn)鏈接來確保已經(jīng)抓取的數(shù)據(jù)保持更新,捕捉最新的內(nèi)容和評(píng)論。
    • ? - 避免遺漏數(shù)據(jù):某些網(wǎng)站可能在列表頁中提供部分內(nèi)容,啟用鏈接跟進(jìn)可確保獲取到完整的頁面內(nèi)容,避免遺漏重要數(shù)據(jù)。
  • - 缺點(diǎn):
    • ? - 更多網(wǎng)絡(luò)請(qǐng)求和數(shù)據(jù)抓?。焊M(jìn)鏈接會(huì)導(dǎo)致爬蟲抓取更多的頁面,增加網(wǎng)絡(luò)帶寬和處理資源的消耗。
    • ? - 可能會(huì)抓取無關(guān)頁面:如果抓取的頁面沒有足夠的篩選條件,可能會(huì)抓取到無關(guān)的頁面,導(dǎo)致數(shù)據(jù)冗余或混亂。
  • 不啟用鏈接跟進(jìn)(將 `follow=False` 或不進(jìn)行配置):

  • - 優(yōu)點(diǎn):
    • ? - 簡(jiǎn)化抓取邏輯:不啟用鏈接跟進(jìn)可簡(jiǎn)化爬蟲的抓取邏輯,只關(guān)注初始頁面上的數(shù)據(jù)獲取。
    • ? - 控制抓取規(guī)模:不啟用鏈接跟進(jìn)可以控制抓取的深度和規(guī)模,避免抓取過多的頁面。
  • - 缺點(diǎn):
    • ? - 只能抓取初始頁面:不啟用鏈接跟進(jìn)會(huì)限制爬蟲僅抓取初始頁面上的數(shù)據(jù),可能會(huì)錯(cuò)過與頁面相關(guān)的其他內(nèi)容。
    • ? - 需要手動(dòng)編寫更多代碼:不啟用鏈接跟進(jìn)需要手動(dòng)編寫代碼來處理額外的鏈接和頁面獲取,增加工作量。

----這里想說的是,最好別鏈接! 鏈了感覺抓全了,你稍微一個(gè)不注意,抓一堆廣告下來;徒增了負(fù)載...能手寫,盡量手寫~ 當(dāng)然,你做搜索引擎,可是適當(dāng)跟進(jìn),反正你服務(wù)器容量大,隨便搞唄,寧可錯(cuò)抓1000不能放錯(cuò)一個(gè).對(duì)吧...文章來源地址http://www.zghlxwxcb.cn/news/detail-775780.html

到了這里,關(guān)于爬蟲工作量由小到大的思維轉(zhuǎn)變---<第三十六章 Scrapy 關(guān)于CrawlSpider引發(fā)的議題>的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 案例:缺陷個(gè)數(shù)與返工工作量強(qiáng)相關(guān)

    案例:缺陷個(gè)數(shù)與返工工作量強(qiáng)相關(guān)

    某公司積累了21個(gè)項(xiàng)目缺陷個(gè)數(shù)與返工工作量的數(shù)據(jù),如下表所示: 項(xiàng)目序號(hào) 缺陷修復(fù)工時(shí) 缺陷數(shù) 1 9433 1445 2 2990 405 3 634 74 4 647 138 5 4960 710 6 1370 246 7 740 66 8 1223 218 9 2766 528 10 8302 1378 11 626 78 12 611 151 13 811 105 14 2090 320 15 1440 235 16 5160 784 17 7100 1030 18 7560 1239 19 1737 321 20 6830 987 21

    2024年02月15日
    瀏覽(30)
  • eth入門之工作量證明 (POW)

    文檔:工作量證明 (PoW) | ethereum.org 以太坊目前使用的共識(shí)協(xié)議被稱為工作量證明 (PoW)。 這允許以太坊網(wǎng)絡(luò)的節(jié)點(diǎn)就以太坊區(qū)塊鏈上記錄的所有信息的狀態(tài)達(dá)成共識(shí),并防止經(jīng)濟(jì)攻擊。 接下來一年,工作量證明將被逐步淘汰,這有利于權(quán)益證明 (PoS) 的發(fā)展。 向權(quán)益證明 (Po

    2024年02月06日
    瀏覽(25)
  • 【實(shí)訓(xùn)項(xiàng)目】教師工作量管理系統(tǒng)

    【實(shí)訓(xùn)項(xiàng)目】教師工作量管理系統(tǒng)

    目錄 一、需求與分析 1. 項(xiàng)目概述 1.1 教師信息處理 1.2 教師工作量數(shù)據(jù)處理: 1.3 教師綜合信息輸出 2. 需求分析 3. 模塊設(shè)計(jì) 3.1 功能模塊 3.2 所有功能模塊的流程圖 二、設(shè)計(jì)與實(shí)現(xiàn)? 1.?程序?qū)崿F(xiàn)? 1.1 登錄系統(tǒng) 1.2?教師工作量管理系統(tǒng)? 2. 程序設(shè)計(jì) 附:系列文章 計(jì)算每個(gè)老師

    2024年02月11日
    瀏覽(49)
  • 簡(jiǎn)易區(qū)塊鏈的搭建(2)——工作量證明

    1. big.Int 的一些常見方法和屬性: SetInt64(x int64) :將一個(gè) int64 類型的整數(shù)賦值給 big.Int 。 SetString(s string, base int) :將一個(gè)字符串表示的整數(shù)按照指定的進(jìn)制轉(zhuǎn)換為 big.Int 。 Add(x, y *big.Int) *big.Int :將兩個(gè) big.Int 相加,并返回結(jié)果。 Sub(x, y *big.Int) *big.Int :將一個(gè) big.Int 減去另

    2024年04月25日
    瀏覽(32)
  • 工作量證明在驗(yàn)證碼中的實(shí)際應(yīng)用

    工作量證明在驗(yàn)證碼中的實(shí)際應(yīng)用

    工作量證明(Proof-of-Work,以下簡(jiǎn)稱“PoW”)在維基百科的介紹中指一般要求用戶進(jìn)行一些耗時(shí)適當(dāng)?shù)膹?fù)雜運(yùn)算,并且答案能被服務(wù)方快速驗(yàn)算,以此耗用的時(shí)間、設(shè)備與能源做為擔(dān)保成本,以確保服務(wù)與資源是被真正的需求所使用。 在實(shí)際生活中可以例舉為:學(xué)生進(jìn)行考試

    2024年01月15日
    瀏覽(33)
  • 基于springboot+vue開發(fā)的教師工作量管理系

    springboot31 隨著信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。本文介紹了教師工作量管理系統(tǒng)的開發(fā)全過程。通過分析教師工作量管理系統(tǒng)管理的不足,創(chuàng)建了一個(gè)計(jì)算機(jī)管理教師工作量管理系統(tǒng)的方案。文章介紹了教師工作量管理系

    2024年02月05日
    瀏覽(21)
  • PHP從零實(shí)現(xiàn)區(qū)塊鏈(網(wǎng)頁版二)工作量證明

    PHP從零實(shí)現(xiàn)區(qū)塊鏈(網(wǎng)頁版二)工作量證明

    源碼地址:PHP從零實(shí)現(xiàn)區(qū)塊鏈(二)工作量證明 - 簡(jiǎn)書 注:本例只是從網(wǎng)頁版實(shí)現(xiàn)一下原理,源碼非本人所寫,只是將原帖的源碼更改了一下,變成網(wǎng)頁版 因?yàn)檫\(yùn)行環(huán)境問題,本例暫時(shí)從windows轉(zhuǎn)到ubuntu下,因?yàn)楹竺胬邮褂昧薵mp庫的gmp_pow和gmp_cmp函數(shù),而php在windows下暫時(shí)沒

    2024年02月03日
    瀏覽(22)
  • 動(dòng)手學(xué)區(qū)塊鏈學(xué)習(xí)筆記(二):區(qū)塊鏈以及工作量證明算法

    動(dòng)手學(xué)區(qū)塊鏈學(xué)習(xí)筆記(二):區(qū)塊鏈以及工作量證明算法

    緊接上文,在介紹完區(qū)塊鏈中的加密解密以及公鑰私鑰等算法后,本篇開始正式進(jìn)入?yún)^(qū)塊鏈概念與一個(gè)簡(jiǎn)單區(qū)塊鏈系統(tǒng)的實(shí)現(xiàn)過程介紹。 什么是區(qū)塊鏈? 區(qū)塊鏈,就是一個(gè)又一個(gè)區(qū)塊組成的鏈條。每一個(gè)區(qū)塊中保存了一定的信息,它們按照各自產(chǎn)生的時(shí)間順序連接成鏈條。

    2024年01月17日
    瀏覽(30)
  • 區(qū)塊鏈基礎(chǔ)知識(shí)7-比特幣挖礦原理/工作量證明

    區(qū)塊鏈基礎(chǔ)知識(shí)7-比特幣挖礦原理/工作量證明

    在前面《區(qū)塊鏈基礎(chǔ)知識(shí)6-區(qū)塊鏈記賬原理》我們了解到記賬是把交易記錄、交易時(shí)間、賬本序號(hào)、上一個(gè)Hash值等信息計(jì)算Hash打包的過程。 我們知道所有的計(jì)算和存貯是需要消耗計(jì)算機(jī)資源的,既然要付出成本,那節(jié)點(diǎn)為什么還要參與記賬呢?在中本聰(比特幣之父)的設(shè)

    2024年04月28日
    瀏覽(17)
  • 如何判斷你論文的創(chuàng)新度和工作量,能否達(dá)到期刊要求?

    1、SCI二區(qū)+ 頂刊:近幾年的頂刊頂會(huì)里頂?shù)?SCI二區(qū):近幾年的頂刊頂會(huì)里差的 2個(gè)以上,多多益善,因?yàn)橐C明你實(shí)驗(yàn)(模型)的泛化性 不是說你做了創(chuàng)新,你還得證明你的創(chuàng)新是領(lǐng)域內(nèi)有效的一種 2、水刊 1個(gè)夠了,2個(gè)就夠了 近幾年的中等(2區(qū)作用)的,最好有近幾年的

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包