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

Python中scrapy下載保存圖片的示例

 更新時(shí)間:2021年07月22日 15:35:09   作者:sl01224318  
在日常爬蟲練習(xí)中,我們爬取到的數(shù)據(jù)需要進(jìn)行保存操作,在scrapy中我們可以使用ImagesPipeline這個(gè)類來進(jìn)行相關(guān)操作,本文主要介紹了scrapy下載保存圖片,感興趣的可以了解一下

        在日常爬蟲練習(xí)中,我們爬取到的數(shù)據(jù)需要進(jìn)行保存操作,在scrapy中我們可以使用ImagesPipeline這個(gè)類來進(jìn)行相關(guān)操作,這個(gè)類是scrapy已經(jīng)封裝好的了,我們直接拿來用即可。

                                                                   

     在使用ImagesPipeline下載圖片數(shù)據(jù)時(shí),我們需要對其中的三個(gè)管道類方法進(jìn)行重寫,其中         — get_media_request   是對圖片地址發(fā)起請求

   — file path   是返回圖片名稱

   — item_completed  返回item,將其返回給下一個(gè)即將被執(zhí)行的管道類

                                                

        那具體代碼是什么樣的呢,首先我們需要在pipelines.py文件中,導(dǎo)入ImagesPipeline類,然后重寫上述所說的3個(gè)方法:

from scrapy.pipelines.images import ImagesPipeline
import  scrapy
import os
 
 
class ImgsPipLine(ImagesPipeline):
    def get_media_requests(self, item, info):
        yield scrapy.Request(url = item['img_src'],meta={'item':item})
 
 
    #返回圖片名稱即可
    def file_path(self, request, response=None, info=None):
        item = request.meta['item']
        print('########',item)
        filePath = item['img_name']
        return filePath
 
    def item_completed(self, results, item, info):
        return item

        方法定義好后,我們需要在settings.py配置文件中進(jìn)行設(shè)置,一個(gè)是指定圖片保存的位置IMAGES_STORE = 'D:\\ImgPro',然后就是啟用“ImgsPipLine”管道,

ITEM_PIPELINES = {
   'imgPro.pipelines.ImgsPipLine': 300,  #300代表優(yōu)先級(jí),數(shù)字越小優(yōu)先級(jí)越高
}

         設(shè)置完成后,我們運(yùn)行程序后就可以看到“D:\\ImgPro”下保存成功的圖片。

完整代碼如下:

spider文件代碼:

# -*- coding: utf-8 -*-
import scrapy
from imgPro.items import ImgproItem
 
 
 
class ImgSpider(scrapy.Spider):
    name = 'img'
    allowed_domains = ['www.521609.com']
    start_urls = ['http://www.521609.com/daxuemeinv/']
 
    def parse(self, response):
        #解析圖片地址和圖片名稱
        li_list = response.xpath('//div[@class="index_img list_center"]/ul/li')
        for li in li_list:
            item = ImgproItem()
            item['img_src'] = 'http://www.521609.com/'  + li.xpath('./a[1]/img/@src').extract_first()
            item['img_name'] = li.xpath('./a[1]/img/@alt').extract_first() + '.jpg'
            # print('***********')
            # print(item)
            yield item

items.py文件

import scrapy
 
 
class ImgproItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    img_src = scrapy.Field()
    img_name = scrapy.Field()

pipelines.py文件

from scrapy.pipelines.images import ImagesPipeline
import  scrapy
import os
from  imgPro.settings import IMAGES_STORE as IMGS
 
class ImgsPipLine(ImagesPipeline):
    def get_media_requests(self, item, info):
        yield scrapy.Request(url = item['img_src'],meta={'item':item})
 
 
    #返回圖片名稱即可
    def file_path(self, request, response=None, info=None):
        item = request.meta['item']
        print('########',item)
        filePath = item['img_name']
        return filePath
 
    def item_completed(self, results, item, info):
        return item

settings.py文件

import random
BOT_NAME = 'imgPro'
 
SPIDER_MODULES = ['imgPro.spiders']
NEWSPIDER_MODULE = 'imgPro.spiders'
 
IMAGES_STORE = 'D:\\ImgPro'   #文件保存路徑
LOG_LEVEL = "WARNING"
ROBOTSTXT_OBEY = False
#設(shè)置user-agent
USER_AGENTS_LIST = [
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
    ]
USER_AGENT = random.choice(USER_AGENTS_LIST)
DEFAULT_REQUEST_HEADERS = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en',
   # 'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
    'User-Agent':USER_AGENT
}
 
#啟動(dòng)pipeline管道
ITEM_PIPELINES = {
   'imgPro.pipelines.ImgsPipLine': 300,
}

         以上即是使用ImagesPipeline下載保存圖片的方法,今天突生一個(gè)疑惑,爬蟲爬的好,真的是牢飯吃的飽嗎?還請各位大佬解答!更多相關(guān)Python scrapy下載保存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python面向?qū)ο蟪绦蛟O(shè)計(jì)類的多態(tài)用法詳解

    Python面向?qū)ο蟪绦蛟O(shè)計(jì)類的多態(tài)用法詳解

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)類的多態(tài)用法,結(jié)合實(shí)例形式詳細(xì)分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的多態(tài)概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • 基于Python實(shí)現(xiàn)蒙特卡洛法計(jì)算圓周率π

    基于Python實(shí)現(xiàn)蒙特卡洛法計(jì)算圓周率π

    蒙特卡羅法也稱統(tǒng)計(jì)模擬法、統(tǒng)計(jì)試驗(yàn)法,是把概率現(xiàn)象作為研究對象的數(shù)值模擬方法,是按抽樣調(diào)查法求取統(tǒng)計(jì)值來推定未知特性量的計(jì)算方法,本文我們將介紹如何使用Python來實(shí)現(xiàn)蒙特卡洛法計(jì)算圓周率π,感興趣的朋友可以參考下
    2023-06-06
  • wxPython色環(huán)電阻計(jì)算器

    wxPython色環(huán)電阻計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了wxPython色環(huán)電阻計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例

    將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例

    今天小編就為大家分享一篇將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python單例模式實(shí)例解析

    python單例模式實(shí)例解析

    這篇文章主要為大家詳細(xì)介紹了python單例模式實(shí)例的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Pytorch中的model.train()?和?model.eval()?原理與用法解析

    Pytorch中的model.train()?和?model.eval()?原理與用法解析

    pytorch可以給我們提供兩種方式來切換訓(xùn)練和評(píng)估(推斷)的模式,分別是:model.train()?和?model.eval(),這篇文章主要介紹了Pytorch中的model.train()?和?model.eval()?原理與用法,需要的朋友可以參考下
    2023-04-04
  • pyinstaller將含有多個(gè)py文件的python程序做成exe

    pyinstaller將含有多個(gè)py文件的python程序做成exe

    這篇文章主要介紹了pyinstaller將含有多個(gè)py文件的python程序做成exe,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python pyecharts實(shí)現(xiàn)繪制中國地圖的實(shí)例詳解

    Python pyecharts實(shí)現(xiàn)繪制中國地圖的實(shí)例詳解

    pyecharts是一個(gè)用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個(gè)數(shù)據(jù)可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒。本文將通過pyecharts繪制中國地圖,需要的可以學(xué)習(xí)一下
    2022-01-01
  • Python shutil模塊文件和目錄操作示例詳解

    Python shutil模塊文件和目錄操作示例詳解

    本文將會(huì)學(xué)習(xí)到?shutil?模塊,包括其主要功能和示例代碼,以幫助你更好地理解如何使用它來處理文件和目錄
    2023-11-11
  • 如何使用python3獲取當(dāng)前路徑及os.path.dirname的使用

    如何使用python3獲取當(dāng)前路徑及os.path.dirname的使用

    這篇文章主要介紹了如何使用python3獲取當(dāng)前路徑及os.path.dirname的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

黎城县| 九江市| 东城区| 洛隆县| 富裕县| 肥东县| 延吉市| 光泽县| 成都市| 浠水县| 丰城市| 永济市| 横山县| 贺州市| 舒城县| 山东| 云浮市| 隆回县| 武川县| 贵阳市| 德化县| 治多县| 金门县| 桐柏县| 志丹县| 辛集市| 茌平县| 福安市| 巴东县| 咸丰县| 通河县| 镇平县| 光山县| 博兴县| 凤城市| 乌兰浩特市| 绥宁县| 万州区| 阿坝县| 江安县| 霍州市|