需求描述:

    最近发现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社区图片的更多相关文章

  1. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...

  2. 手把手教你吧Python应用到实际开发 不再空谈悟法☝☝☝

    手把手教你吧Python应用到实际开发 不再空谈悟法☝☝☝ 想用python做机器学习吗,是不是在为从哪开始挠头?这里我假定你是新手,这篇文章里咱们一起用Python完成第一个机器学习项目.我会手把手 ...

  3. 利用python自动生成verilog模块例化模板

    一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...

  4. 手把手教你吧Python应用到实际开发 不再空谈悟法✍✍✍

    手把手教你吧Python应用到实际开发 不再空谈悟法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

  5. 手把手教你把Python应用到实际开发 不再空谈语法

    手把手教你把Python应用到实际开发 不再空谈语法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

  6. 手把手教你使用Python爬取西刺代理数据(下篇)

    /1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...

  7. 手把手教你用Python抓取AWS的日志(CloudTrail)数据

    数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的CloudTrail配置,进行日志抓取.进行数据分析,发现数据价值! 如今是云的时代,许多公司都把自己的IT架 ...

  8. 手把手教你用Python网络爬虫获取网易云音乐歌曲

    前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将 ...

  9. 【震惊】手把手教你用python做绘图工具(一)

    在这篇博客里将为你介绍如何通过numpy和cv2进行结和去创建画布,包括空白画布.白色画布和彩色画布.创建画布是制作绘图工具的前提,有了画布我们就可以在画布上尽情的挥洒自己的艺术细胞. 还在为如何去绘 ...

随机推荐

  1. 消息中间件 rabbitMQ

    参考内容:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html 一.什么是RabbitMQ RabbitMQ是一个由erlang 开发的AMQP(Advance ...

  2. mongo中用嵌套结构优势是什么

    首先需要知道,MongoDB是NoSQL中的一种,是不直接支持Join的,这是NoSQL的一个特点,不需要直接支持Join,可以将横向扩展以及性能做到更好. 但是这不等于说MongoDB不能做Join ...

  3. BurpSuite抓HTTPS包

    Burp Suite要抓HTTPS的包的话,是需要有Burp Suite的CA证书的 为什么要证书这里就不说了,下面是具体步骤 1.首先要把Burp Suite的CA证书下载到本地 Burp Suit ...

  4. 2019-04(2)Python学习

    一.元组 1.什么是元组? 元组是一个固定长度,不可改变的Python序列对象.创建元组的最简单方式,是用逗号分隔一列值: In [1]: tup = 4, 5, 6 In [2]: tup Out[ ...

  5. CodeForces 900D Unusual Sequences

    题目链接: https://codeforces.com/contest/900/problem/D 题意 假设有distinct 正整数序列{a1,a2,,,an},满足gcd(a1, a2, .. ...

  6. 从零开始学spring cloud(六) -------- Ribbon

    一.Ribbon介绍 Ribbon就是客户端侧负责均衡实现的一种方式,那么Ribbon是什么呢? Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端侧负载均衡算法.Ribb ...

  7. jdk和tomcat的安装

    https://blog.csdn.net/angel_w/article/details/78580528

  8. Eclipse使用相关配置

    问题描述:The word is not correctly spelled问题分析:eclipse校验单词拼写造成,出现在配置文件中,会影响到程序的正常执行解决方案:在eclipse下的Window ...

  9. 手工脱壳之AsPack压缩脱壳-随机基址

    一.工具及壳介绍二.脱壳1.ESP定律脱壳2.单步跟踪脱壳3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查看待脱壳 ...

  10. Django 的认识,面试题

    Django 的认识,面试题 1. 对Django的认识? #1.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构.以及全 ...