亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

例如,我們可以修改我們的QuotesSpider爬蟲,使用Selectors來提取每個(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爬蟲,使其生成和收集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)來處理爬蟲從網(wǎng)頁中抓取的Item。當(dā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、以及如何避免爬蟲被網(wǎng)站識(shí)別和封鎖等問題。

到此這篇關(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求解任意閉區(qū)間的所有素?cái)?shù)

    Python求解任意閉區(qū)間的所有素?cái)?shù)

    本篇文章是一篇關(guān)于python求素?cái)?shù)的知識(shí)點(diǎn)內(nèi)容,如果大家在應(yīng)用中有用的到,不妨跟著學(xué)習(xí)下。
    2018-06-06
  • 一步真實(shí)解決AttributeError:‘Upsample‘?object?has?no?attribute‘recompute_scale_factor‘的問題

    一步真實(shí)解決AttributeError:‘Upsample‘?object?has?no?attribute‘

    這篇文章主要介紹了解決解決AttributeError:?‘Upsample‘?object?has?no?attribute?‘recompute_scale_factor‘的問題,本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • python中ConfigParse模塊的用法

    python中ConfigParse模塊的用法

    這篇文章主要介紹了python中ConfigParse模塊的用法,以實(shí)例形式講述了配置文件模塊ConfigParse的使用步驟,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09
  • Python中類的創(chuàng)建和實(shí)例化操作示例

    Python中類的創(chuàng)建和實(shí)例化操作示例

    這篇文章主要介紹了Python中類的創(chuàng)建和實(shí)例化操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的定義、實(shí)例化、方法調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 使用Matplotlib創(chuàng)建自定義可視化圖表的方法小結(jié)

    使用Matplotlib創(chuàng)建自定義可視化圖表的方法小結(jié)

    Matplotlib 是 Python 中最流行的繪圖庫(kù)之一,它提供了豐富的功能和靈活性,使用戶能夠創(chuàng)建各種類型的可視化圖表,本文將介紹如何使用 Matplotlib 中的各種功能和技巧來創(chuàng)建自定義的可視化圖表,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Python批量將csv文件編碼方式轉(zhuǎn)換為UTF-8的實(shí)戰(zhàn)記錄

    Python批量將csv文件編碼方式轉(zhuǎn)換為UTF-8的實(shí)戰(zhàn)記錄

    近日在處理數(shù)據(jù)的時(shí)候發(fā)現(xiàn)有的文件為csv文件,Xiam 這篇文章主要給大家介紹了關(guān)于利用Python批量將csv文件編碼方式轉(zhuǎn)換為UTF-8的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • python for循環(huán)賦值問題

    python for循環(huán)賦值問題

    這篇文章主要介紹了python for循環(huán)賦值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python?CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)教程深入講解

    Python?CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)教程深入講解

    CNN,即卷積神經(jīng)網(wǎng)絡(luò),主要用于圖像識(shí)別,分類。由輸入層,卷積層,池化層,全連接層(Affline層),Softmax層疊加而成。卷積神經(jīng)網(wǎng)絡(luò)中還有一個(gè)非常重要的結(jié)構(gòu):過濾器,它作用于層與層之間(卷積層與池化層),決定了怎樣對(duì)數(shù)據(jù)進(jìn)行卷積和池化
    2022-12-12
  • Python 字符串操作方法大全

    Python 字符串操作方法大全

    python字符串操作實(shí)方法大合集,包括了幾乎所有常用的python字符串操作,如字符串的替換、刪除、截取、復(fù)制、連接、比較、查找、分割等,需要的朋友可以參考下
    2014-03-03
  • Python創(chuàng)建空列表的字典2種方法詳解

    Python創(chuàng)建空列表的字典2種方法詳解

    這篇文章主要介紹了Python創(chuàng)建空列表的字典2種方法詳解,需要的朋友可以參考下
    2020-02-02

最新評(píng)論