Day3-scrapy爬虫下载图片自定义名称
学习Scrapy过程中发现用Scrapy下载图片时,总是以他们的URL的SHA1 hash值为文件名,如:
图片URL:http://www.example.com/image.jpg
它的SHA1 hash值为:3afec3b4765f8f0a07b78f98c07b83f013567a0a
则下载的图片为:3afec3b4765f8f0a07b78f98c07b83f013567a0a.jpg
目的是下载的图片为:image.jpg或者xxx.jpg
可以通过编写Pipeline来实现。
以下以下载汽车标志为例子(http://www.pcauto.com.cn/zt/chebiao/)
软件版本:Python2.7 Scrapy(1.0.5),Python3目前对Scrapy支持不好,缺少一些模块
一、创建爬虫工程:
进入某目录下:
scrapy startproject Logo
1
2
3
4
5
6
7
8
9
10
11
|
目录结构<br>Logo.
│ scrapy.cfg
│
└─Logo
│ items.py
│ pipelines.py
│ settings.py
│ __init__.py
│
└─spiders
__init__.py
|
二、
1、在items.py中定义需要爬去信息的变量名称
![](/assets/blank.gif)
# -*- coding: utf-8 -*-# Define here the models for your scraped items # # See documentation in: # http://doc.scrapy.org/en/latest/topics/items.htmlfrom scrapy.item import Item, Fieldclass LogoItem(Item):# define the fields for your item here like:# name = scrapy.Field()country=Field()carname=Field()imageurl=Field()
![](/assets/blank.gif)
2、在Logo/Logo/spiders目录下创建logo_spider.py(名字随意),并写如下代码
![](/assets/blank.gif)
#!/usr/bin/env python # -*- coding:utf-8 -*-from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.selector import Selector from Logo.items import LogoItem from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.spider import Spiderclass LogoSpider(CrawlSpider) : #CrawlSpider用来遍布抓取,通过rules来查找所有符合的URL来爬去信息name = "logo" #名字唯一,启动爬虫是用到 scrapy crawl logo -o items.jsonallowed_domains = ["pcauto.com.cn"]start_urls = ["http://www.pcauto.com.cn/zt/chebiao/faguo/"]rules = (Rule(SgmlLinkExtractor(allow = (r'http://www.pcauto.com.cn/zt/chebiao/.*?/$')), follow = True, callback = 'parse_page'),#将读取的网页进行分析# Rule(SgmlLinkExtractor(allow = ('http://www\.pcauto.com\.cn/zt/chebiao/.*?/')), callback = 'parse_page'))def parse_page(self, response) :sel = Selector(response)item = LogoItem()item['country'] = ''.join(sel.xpath('//div[@class="th"]/span[@class="mark"]/a/text()').extract())item['carname'] = sel.xpath('//div[@class="dTxt"]/i[@class="iTit"]/a/text()').extract()item['imageurl'] = sel.xpath('//div[@class="dPic"]/i[@class="iPic"]/a/img/@src').extract()return item# class LogoSpider(Spider) : #抓取单一页面,没有rules# name = "logo" # allowed_domains = ["pcauto.com.cn"] # start_urls = ["http://www.pcauto.com.cn/zt/chebiao/faguo/"]# def parse(self, response) : # sel = Selector(response) # item = LogoItem() # item['country'] = ''.join(sel.xpath('//div[@class="th"]/span[@class="mark"]/a/text()').extract()) #此处 ''.join()是为了在后面为图片自定义名称时使用,若不加''.join(),后面调用item['country']会得到Unicode码 # item['carname'] = sel.xpath('//div[@class="dTxt"]/i[@class="iTit"]/a/text()').extract() # item['imageurl'] = sel.xpath('//div[@class="dPic"]/i[@class="iPic"]/a/img/@src').extract() # return item
![](/assets/blank.gif)
当抓取的数据中含有中文时,屏幕上打印的数据和保存的数据都显示为Unicode编码,如:
![](/assets/blank.gif)
{"carname": ["\u6807\u81f4", "\u96ea\u94c1\u9f99", "\u5e03\u52a0\u8fea", "\u96f7\u8bfa"], "country": "\u6cd5\u56fd\u6c7d\u8f66\u6807\u5fd7", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446890_peugeot.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446234_citroen.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446234_bugatti.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446890_renault.jpg"]},应该对应为{"carname": ["标致", "雪铁龙", "布加迪", "雷诺"], "country": "法国汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446890_peugeot.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446234_citroen.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446234_bugatti.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446890_renault.jpg"]}
![](/assets/blank.gif)
要想保存为中文字符,需在pipelines.py中编写如下:
![](/assets/blank.gif)
import json import codecsclass JsonWithEncodingPipeline(object):def __init__(self):self.file = codecs.open('logo.json', 'w', encoding='utf-8') #当运行scrapy crawl logo -o items.json后,数据默认保存为items.json,里面中文全为Unicode,重新打开或创建一个文件'logo.json',名称随意
def process_item(self, item, spider):line = json.dumps(dict(item), ensure_ascii=False) + "\n"self.file.write(line)return itemdef spider_closed(self, spider):self.file.close()
![](/assets/blank.gif)
已过以上步骤后CMD输入scrapy crawl logo -o items.json,会得到文件logo.json
![](/assets/blank.gif)
{"carname": ["起亚", "双龙", "现代"], "country": "韩国汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/hanguo/1108/1446890_kia.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/hanguo/1108/1446890_shuanglong.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/hanguo/1108/1446234_hyundai.jpg"]} {"carname": ["丰田", "本田", "马自达", "日产", "斯巴鲁", "雷克萨斯", "讴歌", "铃木", "英菲尼迪", "三菱", "光冈"], "country": "日本汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_toyota.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446234_honda.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_mazda.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_nissan.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_subaru.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_lexus.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446234_acura.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_suzuki.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446234_infiniti.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446890_mitsubishi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/riben/1108/1446234_guanggang.jpg"]} {"carname": ["标致", "雪铁龙", "布加迪", "雷诺"], "country": "法国汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446890_peugeot.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446234_citroen.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446234_bugatti.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/faguo/1108/1446890_renault.jpg"]} {"carname": ["凯迪拉克", "雪佛兰", "福特", "别克", "克莱斯勒", "悍马", "GMC", "林肯", "吉普", "道奇", "Rossion"], "country": "美国汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_cadillac.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_chevrolet.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_ford.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1511925_buick8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_chrysler.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_hummer.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_gmc.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446890_lincoln.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1446234_jeep.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1447012_dodge.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/meiguo/1108/1451297_rossion.jpg"]} {"carname": ["斯柯达", "柯尼塞格", "西亚特", "世爵", "萨博", "沃尔沃"], "country": "其他汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/qita/1108/1486098_skoda8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/qita/1108/1446890_koenigsegg.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/qita/1108/1486068_seat8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/qita/1108/1446890_spykers.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/qita/1108/1446890_saab.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/qita/1108/1446890_volvo.jpg"]} {"carname": ["劳斯莱斯", "保时捷", "奔驰", "宝马", "奥迪", "大众", "劳伦士", "欧宝", "迈巴赫", "Smart"], "country": "德国汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446890_rolls-royce.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446890_porsche.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446234_benz.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446234_bmw.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446234_audi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446890_volkswagen.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1528840_8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446890_opel.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446890_maybach.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/deguo/1108/1446890_smart.jpg"]} {"carname": ["宾利", "迷你", "路特斯", "阿斯顿马丁", "捷豹", "路虎"], "country": "英国汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/yingguo/1108/1446234_bentley.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yingguo/1108/1446890_mini.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yingguo/1108/1518508_Lotus8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yingguo/1108/1446234_aston-martin.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yingguo/1108/1446234_jaguar.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yingguo/1108/1446890_landrover.jpg"]} {"carname": ["法拉利", "帕加尼", "玛莎拉蒂", "兰博基尼", "阿尔法罗密欧", "菲亚特"], "country": "意大利汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/yidali/1108/1446234_ferrari.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yidali/1108/1451297_pagani.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yidali/1108/1446890_maserati.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yidali/1108/1447114_5.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yidali/1108/1328198_romio.png", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/yidali/1108/1446234_fiat.jpg"]} {"carname": ["广汽", "奇瑞", "一汽", "比亚迪", "长城", "MG", "庆铃", "力帆", "陆风", "吉奥", "奔腾", "众泰", "中华", "荣威", "厦门金龙", "英伦汽车", "风神", "海马郑州", "长安(商用)", "启辰", "莲花", "汇众", "华普", "昌河", "福迪", "五菱", "长安", "中兴", "吉林", "威旺", "纳智捷", "宝骏", "依维柯", "解放", "川汽野马", "红旗", "黑豹", "哈飞", "江铃", "福田", "双环", "华泰", "长丰", "东南", "海马", "吉利", "帝豪", "江淮", "东风", "金杯", "瑞麒", "九龙", "黄海", "全球鹰", "开瑞", "威麟", "北京汽车", "理念", "北汽", "南汽", "中顺", "江南", "大迪", "永源", "自由风", "中欧"], "country": "国产汽车标志", "imageurl": ["http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_guangqi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_chery.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_yiqi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_byd.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_greatwall.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_mg.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1592575_121.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_lifan.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_lufeng.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1520427_ja8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_benten.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1573305_zhongtai8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_zhonghua.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_roewe.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_jinlonglianhe.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_yinglun.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1447032_dongfengfengshen.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_haimashangyong.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_changanshangyong.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1508050_qichen5050.png", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_lotus-motor.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1451297_huizong.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_huapu.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_changhe.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_fudi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_wuling.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_chaanjiaoche.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_zhongxing.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_yiqi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1531565_ww8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1486099_nazhijie8060.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_baojun.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_iveco.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1328218_yq.png", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1328218_cq.png", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_hongqi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1451297_heibao.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_hafei.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_jiangling.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_futian.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_shuanghuan.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_huatai.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_changfeng.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_soueast-motor.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_haima.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_geely.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1447012_dihao.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_jac.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1447012_dongfeng.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_huachenjinbei.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_riich.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1451708_jiulong.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_huanghai.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_quanqiuying.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_karry.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_ruilink.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_beijingqiche.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1455155_ln.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_baw.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_xinyatu.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1328198_zs.png", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446234_jiangnan.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1447012_dadi.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1446890_ufo.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1451297_ziyoufeng.jpg", "http://img0.pcauto.com.cn/pcauto/zt/chebiao/guochan/1108/1451297_zhongou.jpg"]}
![](/assets/blank.gif)
3、上面只是对抓取的数据进行了保存,还未下载图片,打开pipelines.py
![](/assets/blank.gif)
# -*- coding: utf-8 -*-# Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html from scrapy.pipelines.images import ImagesPipeline from scrapy.exceptions import DropItem from scrapy import Request import json import codecsclass JsonWithEncodingPipeline(object):def __init__(self):self.file = codecs.open('logo.json', 'w', encoding='utf-8')def process_item(self, item, spider):line = json.dumps(dict(item), ensure_ascii=False) + "\n"self.file.write(line)return itemdef spider_closed(self, spider):self.file.close()class DownloadImagesPipeline(ImagesPipeline):def get_media_requests(self,item,info): #下载图片for image_url in item['imageurl']:yield Request(image_url,meta={'item':item,'index':item['imageurl'].index(image_url)}) #添加meta是为了下面重命名文件名使用def file_path(self,request,response=None,info=None):item=request.meta['item'] #通过上面的meta传递过来itemindex=request.meta['index'] #通过上面的index传递过来列表中当前下载图片的下标#图片文件名,item['carname'][index]得到汽车名称,request.url.split('/')[-1].split('.')[-1]得到图片后缀jpg,pngimage_guid = item['carname'][index]+'.'+request.url.split('/')[-1].split('.')[-1]#图片下载目录 此处item['country']即需要前面item['country']=''.join()......,否则目录名会变成\u97e9\u56fd\u6c7d\u8f66\u6807\u5fd7\xxx.jpgfilename = u'full/{0}/{1}'.format(item['country'], image_guid) return filename
![](/assets/blank.gif)
4、setting.py中
![](/assets/blank.gif)
BOT_NAME = 'Logo'SPIDER_MODULES = ['Logo.spiders'] NEWSPIDER_MODULE = 'Logo.spiders'ITEM_PIPELINES={# 'sucai.pipelines.SucaiPipeline':1'Logo.pipelines.JsonWithEncodingPipeline':2,'Logo.pipelines.DownloadImagesPipeline':1 } IMAGES_STORE='F:\Logo\picture'
![](/assets/blank.gif)
然后运行scrapy crawl logo -o items.json,
![](/assets/blank.gif)
Logo. │ items.json │ logo.json │ scrapy.cfg │ ├─Logo │ │ items.py │ │ items.pyc │ │ pipelines.py │ │ pipelines.pyc │ │ settings.py │ │ settings.pyc │ │ __init__.py │ │ __init__.pyc │ │ │ └─spiders │ logo_spider.py │ logo_spider.pyc │ __init__.py │ __init__.pyc │ └─picture└─full├─其他汽车标志│ 世爵.jpg│ 斯柯达.jpg│ 柯尼塞格.jpg│ 沃尔沃.jpg│ 萨博.jpg│ 西亚特.jpg│├─国产汽车标志│ MG.jpg│ 一汽.jpg│ 东南.jpg│ 东风.jpg│ 中兴.jpg│ 中华.jpg│ 中欧.jpg│ 中顺.png│ 九龙.jpg│ 五菱.jpg│ 众泰.jpg│ 依维柯.jpg│ 全球鹰.jpg│ 力帆.jpg│ 北京汽车.jpg│ 北汽.jpg│ 华普.jpg│ 华泰.jpg│ 南汽.jpg│ 厦门金龙.jpg│ 双环.jpg│ 吉利.jpg│ 吉奥.jpg│ 启辰.png│ 哈飞.jpg│ 大迪.jpg│ 奇瑞.jpg│ 奔腾.jpg│ 威旺.jpg│ 威麟.jpg│ 宝骏.jpg│ 川汽野马.png│ 帝豪.jpg│ 广汽.jpg│ 庆铃.jpg│ 开瑞.jpg│ 昌河.jpg│ 比亚迪.jpg│ 永源.jpg│ 汇众.jpg│ 江南.jpg│ 江淮.jpg│ 江铃.jpg│ 海马.jpg│ 海马郑州.jpg│ 理念.jpg│ 瑞麒.jpg│ 福田.jpg│ 福迪.jpg│ 红旗.jpg│ 纳智捷.jpg│ 自由风.jpg│ 英伦汽车.jpg│ 荣威.jpg│ 莲花.jpg│ 解放.png│ 金杯.jpg│ 长丰.jpg│ 长城.jpg│ 长安.jpg│ 长安(商用).jpg│ 陆风.jpg│ 风神.jpg│ 黄海.jpg│ 黑豹.jpg│├─德国汽车标志│ Smart.jpg│ 保时捷.jpg│ 劳伦士.jpg│ 劳斯莱斯.jpg│ 大众.jpg│ 奔驰.jpg│ 奥迪.jpg│ 宝马.jpg│ 欧宝.jpg│ 迈巴赫.jpg│├─意大利汽车标志│ 兰博基尼.jpg│ 帕加尼.jpg│ 法拉利.jpg│ 玛莎拉蒂.jpg│ 菲亚特.jpg│ 阿尔法罗密欧.png│├─日本汽车标志│ 三菱.jpg│ 丰田.jpg│ 光冈.jpg│ 斯巴鲁.jpg│ 日产.jpg│ 本田.jpg│ 英菲尼迪.jpg│ 讴歌.jpg│ 铃木.jpg│ 雷克萨斯.jpg│ 马自达.jpg│├─法国汽车标志│ 布加迪.jpg│ 标致.jpg│ 雪铁龙.jpg│ 雷诺.jpg│├─美国汽车标志│ GMC.jpg│ Rossion.jpg│ 克莱斯勒.jpg│ 凯迪拉克.jpg│ 别克.jpg│ 吉普.jpg│ 悍马.jpg│ 林肯.jpg│ 福特.jpg│ 道奇.jpg│ 雪佛兰.jpg│├─英国汽车标志│ 宾利.jpg│ 捷豹.jpg│ 路特斯.jpg│ 路虎.jpg│ 迷你.jpg│ 阿斯顿马丁.jpg│└─韩国汽车标志双龙.jpg现代.jpg起亚.jpg
![](/assets/blank.gif)
转载于:https://www.cnblogs.com/GavinSimons/p/8358983.html
Day3-scrapy爬虫下载图片自定义名称相关推荐
- Python爬虫——利用Scrapy批量下载图片
Python爬虫--利用Scrapy批量下载图片 Scrapy下载图片项目介绍 使用Scrapy下载图片 项目创建 项目预览 创建爬虫文件 项目组件介绍 Scrapy爬虫流程介绍 页面结构分析 定义I ...
- Scrapy框架下载图片(站酷网下载图片)
Scrapy框架下载图片 下载图片 Scrapy框架下载文件(包括图片有自己一套解决方案,比我们直接使用urlretriever更加有优势) 避免重新下载最近下载过的文件 可以方便的指定文件存储路径 ...
- java 下载db文件_Java下载文件自定义名称和格式类型
response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...
- scrapy (2)下载图片及存储信息
例1:scrapy项目的使用(利用item收集抓取的返回值) 1.创建scrapy项目 1 2 3 4 5 6 scrapy startproject booklist New Scrapy proj ...
- scrapy python下载图片_使用Scrapy自带的ImagesPipeline下载图片,并对其进行分类。
imagespipeline是scrapy自带的类,用来处理图片(爬取时将图片下载到本地)用的. 优势: 将下载图片转换成通用的jpg和rgb格式 避免重复下载 缩略图生成 图片大小过滤 异步下载 . ...
- scrapy爬虫下载文件、重命名文件
scrapy下载文件并重命名文件,python下载文件并重命名文件 目标:下载网页 http://www.zimuku.cn/search?q=&t=onlyst&p=1 上的字幕文件 ...
- Python 爬虫下载图片两种方法
""" 下载图片 """url = "图片链接"filename = "图片存储的路径" # 记得加 ...
- Scrapy修改下载图片名字
源码下载:http://download.csdn.net/download/adam_zs/10167921 1.项目结构,下载图片 2.代码介绍 pipelines.py from scrapy. ...
- 利用python3爬虫下载图片、pdf文档
环境 语言环境:python3.6 操作系统:Win10 第三方库 requests 互联网上的资源大都是以二进制形式存储和运输的,如图片.pdf.音频.视频等,像.dat..ts等这些不常用的文件也 ...
最新文章
- 微指令地址的形成方式_交换那些事儿 | 基础维护篇 IPv6地址分类及配置方法
- 安装npm_前端开发:node.js的node包管理器npm安装以及使用
- envi矢量图层外面有蓝色边框_晒晒装完的新房,头次见全屋浅蓝背景墙,加石膏线边框,温馨别致...
- MySQL创建存储过程(CREATE PROCEDURE)
- Laravel Model 利用 Macroable 为数据模型添加宏能力
- 【04】泛型中的桥方法
- opencv表面缺陷检测_机器视觉表面缺陷检测 光学元件瑕疵检测
- java仿百度分页_java仿百度假分页代码实现
- 【数字电子技术课程设计】多功能数字电子钟的设计
- android 参数签名 存放,SignatureView 一个在Android上的电子签名板,能保存所签名的图片...
- 基于SpringBoot的网页版进销存-2.0版本
- go分析和kegg分析_一些GO及KEGG分析的知识
- python gpio 接口_树莓派GPIO接口常见的命令
- LED Designing
- Single-Shot Object Detection with Enriched Semantics 论文笔记
- 国内和国外DNS服务器地址 全国各地电信DNS服务器地址
- R语言实现拟合神经网络; 神经网络包
- 常青科技冲刺A股上市:研发费用率较低,关联方曾拆出资金达1亿元
- [Linux] 10. shell编程基础《updating》
- linux下安装anaconda教程清华源
热门文章
- 浅谈网络推广方法的营销周期
- 谈谈IT行业的职业发展方向
- 了解Synchronzied原理一篇就够了!
- 电子邮件加密和数字签名服务解决方案
- C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码
- 用计算机设置变大的命令按钮 vb,2015年计算机二级考试《VB》考前练习题(4)
- h5学习笔记 下拉菜单
- ipad可以开发python_这15个应用,程序员用iPad照样可以编程!
- 【教程】如何在ICML上查找历年best paper
- 面试感悟之大工经历(2012-9.11——2012.9.13)