python爬虫:爬取你喜欢的高清图片

任务目标:

1.抓取不同类型的图片

2.编写一个GUI界面爬虫程序,打包成exe重新文件

3.遇到的难点

1.分析如何抓取不同类型的图片

首先打开网站,可以看到有如下6个类型的菜单

在这里插入图片描述

点击不同菜单,发现URL显示如下

大胸妹:https:/cid = 2

小翘臀:https:/cid = 6

可以看到每个类型图片对应不同的cid值

所以要想抓取不同类型的图片,只需要构造下url

将cid进行参数化,然后传给url即可

具体代码在以下定义

2.利用tkinter进行GUI编程

之前有写过一些tkinter编程的随笔

例如 利用python制作一个翻译工具

先来看一下这次设计的程序最终页面布局,

然后再具体讲下如何实现的,页面布局如下:

选择图片存储路径

抓取到的图片要保存到电脑本地,所以就想着最好能够自己挑选本地任意一个文件夹作为存储路径

后来网上冲浪一番发现tkinter是可以实现这个功能的

可以通过tkinter.filedialog模块中的askdirectory()方法实现

下面是在网上找到的一段示例代码

具体到这个例子,

(1)定义一个文本框,用来存放(显示)选择的存储路径

(2)定一个按钮,来触发选择本地路径功能

(3)定义一个函数,来实现选取路径功能

后续保存图片时,路径可以直接使用前面定义好的的self.input中的值

选择分类

因为图片分为了6个类别,每个类别对应一个cid值,所以可以预先把cid抽象出来,视为参数传递 (1)定义一个拖动框,存储图片类型

(2)根据选择性类型不同,返回不同的cid值

3.填写爬取页数

在这里插入图片描述

自定义抓取深度,某些抓取前5页或者前10页

后面把这个文本文本的值传给url即可

3.遇到的问题

下载图片的名称无效,导致无法保存

有些图片没有名称,文件名就是.jpg, 这样在保存时会提示非法字符无法保存,程序也会报错,终止运行。

为了解决这个问题,我在每个文件名的末尾都加一个字母,这样就不会存在无名称图片了

整体效果如下:

ps:推荐一下我建的python零基础系统学习交流扣扣qun:322795889,群里有免费的视频教程,开发工具、电子书籍、项目源码分享。学习python web、python爬虫、数据分析、大数据,人工智能等技术有不懂的可以加入一起交流学习,一起进步!

本文分享自微信公众号 - python教程(pythonjc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安全漏洞环境学习

Joomla 3.4.6-RCE漏洞复现

Joomla是一套全球有名的CMS系统,基于PHP语言加上MySQL数据库所开发出来的WEB软件系统,目前最新版本是3.9.12。可以在多种不同的平台上部署并且...

15910
来自专栏信安之路

一处反序列化任意文件写入的漏洞分析

近日在审计某 CMS 时,发现一处反序列化任意写入文件的操作。其中的场景蛮有意思的,将其简化抽取出来做个 CTF 的题目丢给学弟(比较简单),在此做个记录。

7810
来自专栏http://www.cnblogs.com

Linux yum 命令

yum (全称Yellow dog Update)命令是 RedHat 和 Fedora 以及 SUSE 中基于 rpm 软件包管理器。全称 Yellowdog...

11310
来自专栏landv

一个100%Go语言的Web-Term-SSH 堡垒机项目

Docker pull docker pull mojotvcn/sshfortress

11040
来自专栏陶士涵的菜地

[视频教程] 基于redis的消息队列实现与思考

使用redis的list列表来实现消息队列功能,相信大家都听过消息队列,但是在业务中可能并没有真正去使用它。在公司项目中正好有个场景使用到了消息队列,因此就来说...

6520
来自专栏测试游记

测试开发进阶(二十九)

rest_framework.generics.ListCreateAPIView

8510
来自专栏绿盟科技安全情报

【漏洞预警】phpMyAdmin跨站请求伪造(CVE-2019-12922)漏洞预警通告

phpMyAdmin是一个MySQL和MariaDB数据库的免费开源管理工具,广泛用于管理WordPress、Joomla和许多其他内容管理平台创建的网站的数据...

8710
来自专栏Seebug漏洞平台

使用 Ghidra 分析 phpStudy 后门

这次事件已过去数日,该响应的也都响应了,虽然网上有很多厂商及组织发表了分析文章,但记载分析过程的不多,我只是想正儿八经用 Ghidra 从头到尾分析下。

7210
来自专栏python前行者

百度搜索高级语法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

23510
来自专栏老码农的一亩三分地

IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成

CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的)。W3C也有新的版本更新,称为CS...

7620

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励