Python之Scrapy爬虫实战--爬取妹子图
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爬虫实战--爬取妹子图相关推荐
- Scrapy 爬虫实战-爬取字幕库
Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...
- Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文
大宗师是著名网络小说作家蛇从革的系列作品"宜昌鬼事"之一,在天涯论坛具有超级高的访问量.这个长篇小说于2015年3月17日开篇,并于2016年12月29日大结局,期间每天有7万多读 ...
- Python 采用Scrapy爬虫框架爬取豆瓣电影top250
scrapy 简介 在此,默认已经安装好Scrapy,如果没有安装可以到scrapy 官网下载安装. 注意: 在安装Scrapy之前首先需要安装一下python第三方库:(安装方法并不在本文讲解范围, ...
- Python之selenium爬虫实战爬取表情包
文章目录 前言 寻找目标 思路分析 步骤实现 爬取过程 实现效果 以下是全部代码 提示:以下是本篇文章正文内容,下面案例可供参考 前言 大家点进来看selenium操作,那么你应该知道 seleniu ...
- 爬取妹子图(python):爬虫(bs+rq)+ gevent多线程
爬取妹子图(python):爬虫(bs+rq)+ gevent多线程 简介 我观察爬取妹子图算是爬虫专业户必做的事情之一,所以我也做了一个,结果是有3.45GB,49847张图. 打算依靠这个图库做个 ...
- Python爬虫实战爬取租房网站2w+数据-链家上海区域信息(超详细)
Python爬虫实战爬取租房网站-链家上海区域信息(过程超详细) 内容可能有点啰嗦 大佬们请见谅 后面会贴代码 带火们有需求的话就用吧 正好这几天做的实验报告就直接拿过来了,我想后面应该会有人用的到吧 ...
- Python 爬虫入门(二)——爬取妹子图
Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...
- python爬虫实战---爬取大众点评评论
python爬虫实战-爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...
- python爬虫-爬妹子图_Python 爬虫入门之爬取妹子图
Python 爬虫入门之爬取妹子图 来源:李英杰 链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...
最新文章
- GBDT--简单理解
- 按键精灵_按键精灵——办公常用脚本集锦
- 分类器评价与在R中的实现:ROC图与AUC
- CodeBlocks的一些用法和常见的问题
- 没有流程的项目管理,都是无用功!
- python -c带来的惊喜
- sublime关于行操作的快捷键:如快速复制整行等
- 算法竞赛入门经典 写题笔记(第五章 图论算法与模型2)
- 电脑的发展史_互联网发展史 硅谷传奇之 IBM
- python3 unicode字符串_【已解决】Python3中如何声明字符串是unicode类型以避免log日志打印出错...
- Qt工作笔记-Linux上字体问题,导致所有文字重叠在一起
- JavaEE Web 开发 链接 mysql 出现 Class.not found的错误
- fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法
- linux jdk1.8 32位下载永久地址,ubuntu,centos,java
- Asp.net 5种页面转向方法 转载
- PIC单片机软件平台----MPLAB IDE和MPLAB X IDE
- java面试之Servlet/JSP面试题
- 柳夜熙又更新了,虚拟人的底层技术是什么?
- oracle18c 配置,0报错!Oracle 18C 完全安装指南及常见问题汇总
- Moneybookers支付方式开发