撸图——程序员基本生存技能丨~@

2023-02-14 16:28

原标题:撸图——程序员基本生存技能

给我一次,走 你 心 机 会

听说过撸串

撸啊撸

撸友

...

"撸图"是个什么鬼??

...

...

看到这么sao气十足的配色

你是不是已经开始想入非非了

...

...

然而

事实

...

...

跟你想的一样

Wahahaha...Wahahahahahahaha...

以下内容18不禁

学到手之后

别忘了

分享给你的好基友

Scrapy 是一个非常流行的 Python 数据抓取框架

用于抓取web站点

并从页面中提取结构化的数据

它的用途广泛

可以用于数据挖掘、监测和自动化测试

今天我们使用 Scrapy 来干一件

程序猿(单身狗、绝大部分男淫)喜闻乐见的事

此文为倒叙,请先看工作成果

心动不如行动

小编先行动了

你们慢慢学习

准备工作

我们使用 Python 2.7 进行开发,需要安装的库如下:

pip install -U scrapy pillow

使用 Scrapy 下载图片时默认需要使用 PIL 库,但是并没有自动安装。我们这里使用更新的 pillow 库替代。

快速开发1. 初始化项目scrapy startproject mztcd mztscrapy genspider meizitu meizitu.com2. 修改 meizitu.py

定义 PItem 类,添加需要使用的 image_urls 、images 和 name 等属性,为下载图片做准备。

importos

importscrapy

classPItem(scrapy.Item): image_urls = scrapy.Field() images = scrapy.Field() name = scrapy.Field()

修改 start_urls 为网站的初始页面, 添加 parse 用于处理列表页, 添加 parse_item 处理项目页面。

3. 修改 settings.pyDOWNLOAD_DELAY = 1

ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1} IMAGES_STORE = '.'4. 运行项目:scrapy crawl meizitu

实际运行效果如下:

这里的效果不是很理想,图片文件名被默认为图片 URL 的 SHA1 值。我们浏览时无法知道图片的大致内容。

我们希望能够保存为比较有意义的名称,最好是分为不同的文件夹存储。

重命名图片

如果想重命名保存文件的名称,我们需要重新定义自己的ImagePipeline。

然后修改 settings.py:

ITEM_PIPELINES = {'mzt.pipelines.MztImagesPipeline': 1}

之后重新运行项目,效果图如下:

这个网站图片太多了,由于没有开启多个线程,导致整整爬了3个多小时,最终一共下载了12000多张图片:

参考资料

http://toutiao.com/a6300929522393841921/

http://mazih.com/post/cibuwb7bu0000rfa2m169vzv9/

公众号内直接回复“进阶”获取超实用电子

责任编辑:

分享到:
相关阅读
© 2016-2021 衡水资讯 http://www.hsfcp.com/ 备案/许可证号:辽ICP备2021007412号