码迷,mamicode.com
首页 > 编程语言 > 详细

手把手教你利用Python自动下载CL社区图片

时间:2018-09-01 23:44:41      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:.com   开发者   sha   模式   正则   NPU   nbsp   保存文件   dal   

需求描述:

    最近发现CL社区上好多精华的帖子分享的图片非常棒,好想好想保存下来,但是一张一张地保存太费时间了,因此,造物者思想主义的我就想动手写个工具,实现只要输入帖子的链接,就能把所有的精华图片下载下来。

程序分析思路:

    Python是一个很好的工具,使用起来非常方便。因此我决定用Python去实现。

思路大概就是,我先输入链接,然后每一张图片的链接,然后去下载它。需求很明确,逻辑应该很清晰,开始干吧。

    环境说明:本人使用的是win7+Python3

首先导入re、requests、os三个包,用于爬虫,os包用于目录的创建

技术分享图片

输入你要保存图片的的链接url = input("Input key url: ")

技术分享图片

这里以http://dd.dety.men/htm_mob/16/1808/32xxxxx.html为例,在浏览器打开是这样的,由于不可描述,我只能放这么一点东西

技术分享图片

这里用获得网页的内容result = requests.get(url)

技术分享图片

技术分享图片

result.text是获取到的网页源码,为了避免有编码问题的困扰,我们现在前面做一下转码

技术分享图片

然后我们需要在源码中找到标题,一会用作保存文件的文件名,标题的寻找的实现代码是,这样返回的是一个list,我们用的时候直接取第0个就好(程序猿数数都是从零开始的)。

技术分享图片

这里要说一下这个寻找标题的实现代码的正则表达式,我们看到网页链接中的源码是

技术分享图片

实现代码的正则表达式就是要找<title>和</title>中间的那一部分,找到的标题如下

技术分享图片

下面来干正事了,从网页中找图片的链接,首先先看浏览器上,按F12打开开发者模式,点击一下"从页面中选中一个元素",选中图片,看到图片的源码

<input data-src="http://www.79img.com/u/20180829/13435782.jpg"

技术分享图片

但是我们需要在Python中看看re获取到的源码是什么样的,

技术分享图片

获取到的图片链接是这样的data-src=\‘http://www.79img.com/u/20180829/13392462.jpg\‘,因此我们用下面这个代码来找到所有的图片链接

pic_url = re.findall(‘data-src=\‘(.*?)\‘‘, result_text, re.S)

技术分享图片

找到链接之后就是下载了,这是下载的方法,keyword是刚才找到的标题名

技术分享图片

加入了创建目录的操作

技术分享图片

源码和如何使用:

最终的源码如下图所示:

技术分享图片

源码已经上传至github,欢迎下载,欢迎各种star,fork

https://github.com/rootzhongfengshan/python_practical/tree/master/DownPictureFromCL

按如图使用

技术分享图片

就可以看到在当前目录产生了一个目录,给你们看看最后的成果图吧,很黄很暴力。

技术分享图片

手把手教你利用Python自动下载CL社区图片

标签:.com   开发者   sha   模式   正则   NPU   nbsp   保存文件   dal   

原文地址:https://www.cnblogs.com/zhongfengshan/p/9571691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!