1、前言

反正闲着也是闲着,不如来学习啊!

2、关键代码

新建项目

不会的同学可参考我的另一篇博文,这里不再赘述:Python之Scrapy爬虫实战–新建scrapy项目

这里只讲一下几个关键点,完整代码在文末。

由于爬取的网站有反爬,一开始没绕过反爬,很快就被封了ip,
然后就在代码里加了些反反爬措施。

设置随机UA

在middlewares.py中自定义Middleware

class RandomUserAgentMiddleware(object):def process_request(self, request, spider):request.headers.setdefault("User-Agent", UserAgent().random)

settings.py

DOWNLOADER_MIDDLEWARES = {'scrapy_test.middlewares.RandomUserAgentMiddleware': 543,
}

设置代理ip

这里大家可参考我的另一篇博文:Python之Scrapy爬虫实战–绕过网站的反爬

使用ImagesPipeline下载图片

pipelines.py

class MzituImgDownloadPipeline(ImagesPipeline):def get_media_requests(self, item, info):default_headers = {'referer': 'https://www.mzitu.com/',}yield Request(item['image_urls'], headers=default_headers, meta={"item_category": item['category'],"item_url": item['image_urls']})def item_completed(self, results, item, info):image_paths = [x['path'] for ok, x in results if ok]if not image_paths:raise DropItem("Item contains no images")return item

然后到settings.py中启用MzituImgDownloadPipeline

ITEM_PIPELINES = {'scrapy_test.pipelines.MzituImgDownloadPipeline': 300,
}

顺便设置下图片存储路径

#下载图片存储位置
IMAGES_STORE = 'F:\\mzitu'

实现快速分类存储图片

关于如何实现分类存储,一开始在网上找了一下,感觉都8太行?
通过阅读源码,发现重写file_path方法就可以快速实现图片的分类存储,这样爬取不同主题下的图片就会存放在不同文件夹了。

pipelines.py

def file_path(self, request, response=None, info=None):category = request.meta['item_category']image_guid = request.meta['item_url'].split('/')[-1]return '%s/%s' % (category, image_guid)

3、效果图

爬取的图片都是正经图哈!

4、结尾

此项目只做学习交流使用,欢迎大家留言讨论!
完整的代码都放在GitHub了,感兴趣的朋友可以看看,帮忙star一下呗,感谢⊙∀⊙!

https://github.com/chenmg2020/scrapy_mzitu

欢迎大家PR

Python之Scrapy爬虫实战--爬取妹子图相关推荐

  1. Scrapy 爬虫实战-爬取字幕库

    Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...

  2. Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文

    大宗师是著名网络小说作家蛇从革的系列作品"宜昌鬼事"之一,在天涯论坛具有超级高的访问量.这个长篇小说于2015年3月17日开篇,并于2016年12月29日大结局,期间每天有7万多读 ...

  3. Python 采用Scrapy爬虫框架爬取豆瓣电影top250

    scrapy 简介 在此,默认已经安装好Scrapy,如果没有安装可以到scrapy 官网下载安装. 注意: 在安装Scrapy之前首先需要安装一下python第三方库:(安装方法并不在本文讲解范围, ...

  4. Python之selenium爬虫实战爬取表情包

    文章目录 前言 寻找目标 思路分析 步骤实现 爬取过程 实现效果 以下是全部代码 提示:以下是本篇文章正文内容,下面案例可供参考 前言 大家点进来看selenium操作,那么你应该知道 seleniu ...

  5. 爬取妹子图(python):爬虫(bs+rq)+ gevent多线程

    爬取妹子图(python):爬虫(bs+rq)+ gevent多线程 简介 我观察爬取妹子图算是爬虫专业户必做的事情之一,所以我也做了一个,结果是有3.45GB,49847张图. 打算依靠这个图库做个 ...

  6. Python爬虫实战爬取租房网站2w+数据-链家上海区域信息(超详细)

    Python爬虫实战爬取租房网站-链家上海区域信息(过程超详细) 内容可能有点啰嗦 大佬们请见谅 后面会贴代码 带火们有需求的话就用吧 正好这几天做的实验报告就直接拿过来了,我想后面应该会有人用的到吧 ...

  7. Python 爬虫入门(二)——爬取妹子图

    Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...

  8. python爬虫实战---爬取大众点评评论

    python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  9. python爬虫-爬妹子图_Python 爬虫入门之爬取妹子图

    Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...

最新文章

  1. GBDT--简单理解
  2. 按键精灵_按键精灵——办公常用脚本集锦
  3. 分类器评价与在R中的实现:ROC图与AUC
  4. CodeBlocks的一些用法和常见的问题
  5. 没有流程的项目管理,都是无用功!
  6. python -c带来的惊喜
  7. sublime关于行操作的快捷键:如快速复制整行等
  8. 算法竞赛入门经典 写题笔记(第五章 图论算法与模型2)
  9. 电脑的发展史_互联网发展史 硅谷传奇之 IBM
  10. python3 unicode字符串_【已解决】Python3中如何声明字符串是unicode类型以避免log日志打印出错...
  11. Qt工作笔记-Linux上字体问题,导致所有文字重叠在一起
  12. JavaEE Web 开发 链接 mysql 出现 Class.not found的错误
  13. fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法
  14. linux jdk1.8 32位下载永久地址,ubuntu,centos,java
  15. Asp.net 5种页面转向方法 转载
  16. PIC单片机软件平台----MPLAB IDE和MPLAB X IDE
  17. java面试之Servlet/JSP面试题
  18. 柳夜熙又更新了,虚拟人的底层技术是什么?
  19. oracle18c 配置,0报错!Oracle 18C 完全安装指南及常见问题汇总
  20. Moneybookers支付方式开发

热门文章

  1. win7+ubuntu 16.04双系统安装方法
  2. 禁止所有搜索引擎访问网站的任何部分
  3. 下标越界 实时错误381 vb
  4. vue 项目中使用高德地图
  5. 前言——为什么要写博客
  6. 第二章 知识收纳整理
  7. 无许可的开源软件可以使用吗?
  8. 用java实现combin函数_Java并发工具类CompletableFuture教程与示例
  9. JMeter学习笔记002-JMeter之响应断言
  10. 使用2.4寸OLED显示器遇到的小问题