最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用Scrapy庫(kù)進(jìn)行數(shù)據(jù)提取和處理的方法詳解

 更新時(shí)間:2023年09月08日 08:51:21   作者:小小張說(shuō)故事  
在我們的初級(jí)教程中,我們介紹了如何使用Scrapy創(chuàng)建和運(yùn)行一個(gè)簡(jiǎn)單的爬蟲(chóng),在這篇文章中,我們將深入了解Scrapy的強(qiáng)大功能,學(xué)習(xí)如何使用Scrapy提取和處理數(shù)據(jù)

一、數(shù)據(jù)提?。篠electors和Item

在Scrapy中,提取數(shù)據(jù)主要通過(guò)Selectors來(lái)完成。Selectors基于XPath或CSS表達(dá)式的查詢語(yǔ)言來(lái)選取HTML文檔中的元素。你可以在你的爬蟲(chóng)中使用response對(duì)象的xpathcss方法來(lái)創(chuàng)建一個(gè)Selector對(duì)象。

例如,我們可以修改我們的QuotesSpider爬蟲(chóng),使用Selectors來(lái)提取每個(gè)引用的文本和作者:

import scrapy
class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'http://quotes.toscrape.com/page/1/',
    ]
    def parse(self, response):
        for quote in response.css('div.quote'):
            text = quote.css('span.text::text').get()
            author = quote.css('span small::text').get()
            print(f'Text: {text}, Author: {author}')

此外,Scrapy還提供了Item類,可以定義你想要收集的數(shù)據(jù)結(jié)構(gòu)。Item類非常適合收集結(jié)構(gòu)化數(shù)據(jù),如我們從quotes.toscrape.com中獲取的引用:

import scrapy
class QuoteItem(scrapy.Item):
    text = scrapy.Field()
    author = scrapy.Field()

然后我們可以修改QuotesSpider爬蟲(chóng),使其生成和收集QuoteItem對(duì)象:

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'http://quotes.toscrape.com/page/1/',
    ]
    def parse(self, response):
        for quote in response.css('div.quote'):
            item = QuoteItem()
            item['text'] = quote.css('span.text::text').get()
            item['author'] = quote.css('span small::text').get()
            yield item

二、數(shù)據(jù)處理:Pipelines

Scrapy使用數(shù)據(jù)管道(pipelines)來(lái)處理爬蟲(chóng)從網(wǎng)頁(yè)中抓取的Item。當(dāng)爬蟲(chóng)生成一個(gè)Item,它將被發(fā)送到Item Pipeline進(jìn)行處理。

Item Pipeline是一些按照?qǐng)?zhí)行順序排列的類,每個(gè)類都是一個(gè)數(shù)據(jù)處理單元。每個(gè)Item Pipeline組件都是一個(gè)Python類,必須實(shí)現(xiàn)一個(gè)process_item方法。這個(gè)方法必須返回一個(gè)Item對(duì)象,或者拋出DropItem異常,被丟棄的item將不會(huì)被之后的pipeline組件所處理。

例如,我們可以添加一個(gè)Pipeline,將收集的引用保存到JSON文件中:

import json
class JsonWriterPipeline(object):
    def open_spider(self, spider):
        self.file = open('quotes.jl', 'w')
    def close_spider(self, spider):
        self.file.close()
    def process_item(self, item, spider):
        line = json.dumps(dict(item)) + "\n"
        self.file.write(line)
        return item

然后你需要在項(xiàng)目的設(shè)置文件(settings.py)中啟用你的Pipeline:

ITEM_PIPELINES = {
   'tutorial.pipelines.JsonWriterPipeline': 1,
}

在這篇文章中,我們更深入地探討了Scrapy的功能,包括如何使用Selectors和Item提取數(shù)據(jù),如何使用Pipelines處理數(shù)據(jù)。在下一篇文章中,我們將學(xué)習(xí)如何使用Scrapy處理更復(fù)雜的情況,如登錄、cookies、以及如何避免爬蟲(chóng)被網(wǎng)站識(shí)別和封鎖等問(wèn)題。

到此這篇關(guān)于python使用Scrapy庫(kù)進(jìn)行數(shù)據(jù)提取和處理的方法詳解的文章就介紹到這了,更多相關(guān)python Scrapy數(shù)據(jù)提取和處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中的閉包與裝飾器的用法詳解

    Python中的閉包與裝飾器的用法詳解

    這篇文章主要介紹了Python中的閉包與裝飾器的用法詳解,裝飾器本質(zhì)上是一個(gè)Python函數(shù),它可以讓其他函數(shù)在不需要做任何代碼變動(dòng)的前提下增加額外功能,裝飾器的返回值也是一個(gè)函數(shù)對(duì)象,需要的朋友可以參考下
    2023-07-07
  • 詳解python3中的真值測(cè)試

    詳解python3中的真值測(cè)試

    這篇文章主要介紹了詳解python3中的真值測(cè)試,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Python進(jìn)行指數(shù)和對(duì)數(shù)曲線擬合詳解

    Python進(jìn)行指數(shù)和對(duì)數(shù)曲線擬合詳解

    曲線擬合是構(gòu)造曲線或數(shù)學(xué)函數(shù)的過(guò)程,其具有對(duì)一系列數(shù)據(jù)點(diǎn)的最佳擬合,可能受到約束,本文主要介紹了如何使用Python實(shí)現(xiàn)指數(shù)和對(duì)數(shù)曲線擬合,需要的可以參考下
    2024-04-04
  • 聊聊python dropna()和notnull()的用法區(qū)別

    聊聊python dropna()和notnull()的用法區(qū)別

    這篇文章主要介紹了聊聊python dropna()和notnull()的用法區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python 三種方法提取pdf中的圖片

    python 三種方法提取pdf中的圖片

    這篇文章主要介紹了python 三種方法提取pdf中的圖片,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • 使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化

    使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化

    這篇文章主要介紹了使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化,在當(dāng)前互聯(lián)網(wǎng)產(chǎn)品迭代頻繁的背景下,回歸測(cè)試的時(shí)間越來(lái)越少,但接口自動(dòng)化測(cè)試因其實(shí)現(xiàn)簡(jiǎn)單、維護(hù)成本低,容易提高覆蓋率等特點(diǎn),越來(lái)越受重視,需要的朋友可以參考下
    2023-08-08
  • Mac中pyenv的安裝與使用教程

    Mac中pyenv的安裝與使用教程

    pyenv支持linux下python多版本的共存和版本之間切換,非常方便,下面這篇文章主要給大家介紹了關(guān)于Mac中pyenv安裝與使用的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • python從gbff文件中直接提取cds序列

    python從gbff文件中直接提取cds序列

    這篇文章主要為大家介紹了python從gbff文件中直接提取cds序列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Ubuntu18.04安裝 PyCharm并使用 Anaconda 管理的Python環(huán)境

    Ubuntu18.04安裝 PyCharm并使用 Anaconda 管理的Python環(huán)境

    這篇文章主要介紹了Ubuntu18.04安裝 PyCharm并使用 Anaconda 管理的Python環(huán)境的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(三)

    python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(三)

    這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)第三篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評(píng)論

油尖旺区| 信宜市| 景洪市| 泰兴市| 贡山| 西乌| 胶州市| 彩票| 苏尼特左旗| 桦南县| 沈丘县| 黄石市| 卓资县| 科尔| 武穴市| 万安县| 奉化市| 元阳县| 东海县| 皋兰县| 鹤峰县| 杭州市| 宜春市| 宁乡县| 西畴县| 芮城县| 浦北县| 八宿县| 浏阳市| 仁布县| 即墨市| 阳泉市| 冀州市| 黄冈市| 汤原县| 嘉祥县| 米易县| 丰城市| 三亚市| 和静县| 新源县|