博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scrapy简单学习6—爬取百度贴吧图片(仿写向)
阅读量:6940 次
发布时间:2019-06-27

本文共 1907 字,大约阅读时间需要 6 分钟。

主要是对上一篇文章的简单仿写,大家以后想批量下载什么图片照格式仿写就好。由于本人是tfboys的粉丝,所以平常没事爱逛贴吧欣赏我家三小只的美图,所以这次就以贴吧[小王的讨论楼]为例,批量爬取该楼的图片[1]

itme.py编写

import scrapyclass WangyuantuItem(scrapy.Item):    image_urls=scrapy.Field()#就编写个图片路径就好

spider的编写

import scrapyimport requestsimport osfrom wangyuantu.items import WangyuantuItemclass XiaowangSpider(scrapy.Spider):    name = "xiaowang"    allowed_domains = ["tieba.baidu.com/p/3888309273"]    start_urls = [        'http://tieba.baidu.com/p/3888309273?pn=%d' % i for i in range(21,45)        ]            def parse(self, response):        item = WangyuantuItem()        item['image_urls']=response.xpath("//img[@class='BDE_Image']/@src").extract()                yield item

pipelines编写:这个部分都是可以套用的

import requestsfrom wangyuantu import settingsimport os#图片下载类class ImageDownloadPipeline(object):    def process_item(self, item, spider):        if 'image_urls' in item:#如何‘图片地址’在项目中            images = []#定义图片空集                        dir_path = '%s/%s' % (settings.IMAGES_STORE, spider.name)            if not os.path.exists(dir_path):                os.makedirs(dir_path)            for image_url in item['image_urls']:                us = image_url.split('/')[3:]                image_file_name = '_'.join(us)                file_path = '%s/%s' % (dir_path, image_file_name)                images.append(file_path)                if os.path.exists(file_path):                    continue                with open(file_path, 'wb') as handle:                    response = requests.get(image_url, stream=True)                    for block in response.iter_content(1024):                        if not block:                            break

settings编写

BOT_NAME = 'wangyuantu'SPIDER_MODULES = ['wangyuantu.spiders']NEWSPIDER_MODULE = 'wangyuantu.spiders'ITEM_PIPELINES = {'wangyuantu.pipelines.ImageDownloadPipeline': 1}#图片储存IMAGES_STORE = 'C:\Users\Lenovo\Pictures'

结果

图片描述

寄语:wili源源小可爱,希望你快快乐乐的长大

图片描述

转载地址:http://ddsnl.baihongyu.com/

你可能感兴趣的文章
react router browserhistory 关于 Nginx配置
查看>>
Focal Loss 的前向与后向公式推导
查看>>
CSharp设计模式读书笔记(4):单例模式(学习难度:★☆☆☆☆,使用频率:★★★★☆)...
查看>>
PostgreSQL远端访问
查看>>
家庭里如何搭建一个互联网可访问的服务器
查看>>
eclipse与SVN 结合(删除SVN中已经上传的问题)
查看>>
webBrowser 模拟登录
查看>>
t4 template multi file output
查看>>
深入理解Fsync
查看>>
剑道基础 - 冈宪次郎
查看>>
Leading and Trailing(数论/n^k的前三位)题解
查看>>
我的php笔记(一)
查看>>
vue.js学习之better-scroll封装的轮播图初始化失败
查看>>
去掉xcode编译warning:ld: warning: directory not found for option '-L
查看>>
杭电1702--ACboy needs your help again!
查看>>
web前端开发分享-css,js进阶篇
查看>>
安大校赛/异或运算一题。
查看>>
ANT build.xml文件详解
查看>>
MVC和观察者模式
查看>>
python 基本的序列和映射规则
查看>>