c语言 将url图片存到本地_python爬虫:爬取男生喜欢的图片

6892596cb01bd7ce2873c7e05f3d8e1f.gif

任务目标:

1.抓取不同类型的图片

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

3.遇到的难点

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

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

50e038fc65d70d2aaa2b03eb6cf9fe9b.png

在这里插入图片描述

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

大胸妹:https:/cid = 2

小翘臀:https:/cid = 6

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

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

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

具体代码在以下定义

2.利用tkinter进行GUI编程

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

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

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

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

2efebf69c25eedc66136b58413a125ed.png

选择图片存储路径

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

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

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

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

具体到这个例子,

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

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

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

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

选择分类

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

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

3.填写爬取页数

19d89dad7c3107dc1582ffdcc27e57eb.png

在这里插入图片描述

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

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

3.遇到的问题

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

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

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

整体效果如下:

745e6f4d0ebe915608c6aca9424a0cc7.png

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

471b05b7e4e6b10fccf873f82b48aed2.gif

觉得不错,点个“在看”然后转发出去0bada894d364755bc7d87174bc2d5cea.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言编译后找不到exe,在VS 2015命令提示符中找不到c – rc.exe

我刚刚安装了Windows 10 Creators Update(版本10.0.15063).我安装了多个版本的Visual Studio(2012年,2013年,2015年和2017年).我几周前才安装了VS 2017.问题在“VS2015 x64本机命令提示符”中运行时,CMake(版本3.8.1)不再找到C/C编译器(在VS 2017命令提示符下运行时它可以正常工…

tomcat如何通过配置的方式部署web工程

Workspaces 下有很多工程文件,这个 Workspaces 是 Myeclipse 自动生成的,我们通过 Myeclipse 写的工程都在这个 Workspaces 文件夹下。 我们部署工程到服务器上,就是要每个 WEB 工程里面的 context 文件夹,这个文件夹可以放在 t…

python爬虫源码_Python—爬虫:王者荣耀全套皮肤【附源码】

怎么获取全套皮肤?用钱买,或者用爬虫爬取下来~虽然后者不能穿。这个案例稍微复杂一点,但是一个非常值得学习的项目。具体实现思路:分析网页源代码结构找到合适的入口穷举访问并解析爬取所有英雄所有皮肤图片代码思路/程序流程&…

警惕成教自考_不,保持警惕不会伤害Java。 关于Java许可的评论。

警惕成教自考所以。 Oracle希望通过Java赚钱。 然后,The Register发表了一篇非常对立的文章,上面有一个超级吸引人的标题。 根据他们的消息来源,“ Oracle正在大力加强对声称违反其许可证的Java客户的审计”。 当Twitter诗句对人们批评Oracle…

android colorstatelist_Android 样式系统 | 主题背景属性

在 Android 样式系统系列的前几篇文章中,我们介绍了主题背景与样式的区别,以及为什么说通过主题背景和公共主题背景属性来分解您要实现的内容是一个不错的主意,请点击链接回顾:Android 样式系统 | 主题背景和样式Android 样式系统 | 常见的主…

python二级考试可以用pycharm吗_学Python,Pycharm不能不知道怎么用

栏目介绍必会的Pycharm。我决定把去年写的Python文章整理一个专栏,垃圾的就直接删除,将多篇博文整理成一篇。 工欲善其事必先利其器,Pycharm 是最受欢迎的Python开发工具,它提供的功能非常强大,我尽量把自己用的都写写…

apache camel_Apache Camel Intellij IDEA插件的工作已开始

apache camel仅仅因为圣诞节并不意味着骆驼静止不动。 在23日晚上,我花了一些时间进行研究,并开始研究IDEA的Apache Camel插件的小原型。 它已经存在了我很长时间。 原因是Apache Camel为目录提供了有关工具的大量有用信息。 该目录包含有关每个Camel组…

Final Cut Pro X剪辑影片基本步骤

文章目录一、资源库、事件、项目之间的区别二、制作一个视频的步骤(一)创建资源库(二)创建事件(非必需)(三)导入资源(四)创建项目(五)进行剪辑(六…

单例模式引发的内存泄漏:_资源泄漏:救援的命令模式

单例模式引发的内存泄漏:多年来, 使用Plumbr进行性能监控时,我遇到了数百个资源泄漏引起的性能问题。 在这篇文章中,我想描述一种最简单的方法来清理资源并避免该问题。 首先,我以电影播放器​​应用程序为例来描述问题。 这种应…

ant构建项目迁移到gradle_Gradle这么弱还跑来面腾讯?

点击上方“刘望舒”,选择“星标”多点在看,就是真爱作者: 厘米姑娘(腾讯开发妹子)| 来源 :公号 码个蛋https://www.jianshu.com/p/1274c1f1b6a4前言在使用Android Studio过程中没少被Gradle坑过,虽然网上有很多简单粗暴的解决方案…

java heroku_使用Spring Boot和Heroku在20分钟内完成Java的单点登录

java heroku建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现。 注册 ,再也不会建立auth了! 大规模更新 我最初为本文…

如何使用SSH客户端远程操作linux系统,并启动、关闭tomcat和查看后台日志

cd … 表示回退到上一级目录 ls 表示查看当前目录下的所有文件 我们的tomcat安装路径在usr\local\yzmis\下面找 例如你要关闭信誉质量考核系统所在的tomcat,你要进入test下去找到apache-tomcat-6.0.14 再进入bin目录下,然后执行[trserver100 bin]$ ./sh…

模块pdf2image.dll加载失败_Webpack 原理从前端模块化开始

当前主流 JS 模块化方案无模块化CommonJS 规范,nodejs 实现的规范AMD 规范,requirejs 实现的规范CMD 规范,seajs 实现的规范, seajs 与 requirejs 实现原理有很多相似的地方 u ES Modules,当前 js 标准模块化方案注意:…

ios html正则表达式,ios 正则表达式去html标签

ios 正则表达式去html标签[2021-01-27 12:53:55] 简介:php正则表达式去掉html的方法:首先使用“htmlspecialchars_decode” 将特殊的HTML实体转换回普通字符;然后通过正则表达式“preg_replace(/]>/,,$_st系统运维正则表达式概述基础正则表达式扩展正…

java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事

java开发五年面试经验深入研究Java之前需要了解的所有内容的概述 有许多工具,方法,环境和功能会改变您处理代码的方式,而这些通常是在学年期间不会遇到的。 虽然它在Java开发世界中迈出了第一步,但大多数实际学习都是在工作中进行…

c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)

编者按优化求解器对于做运筹学应用的学生来说,意义重大。然而直到今天,放眼望去,全网(包括墙外)几乎没有一个系统的Cplex中文求解器教程。作为华人运筹学的最大的社区,『运筹OR帷幄』 责无旁贷,…

markdown 行内公式_如何轻松将笔记转为思维导图(Word、Markdown)

目录简介Markdown -> XMindWord -> XMind简介思维导图是一种一种图像式思维的工具,便于我们理解知识之间的逻辑关系。在我们的学习、生活中,我们习惯于使用word、markdown等笔记软件,而较少的使用思维导图。其实,有些时候我…

apache.camel_Apache Camel 2.18发布–包含内容

apache.camel本周发布了Apache Camel 2.18.0 。 此版本是重要版本,我将在此博客文章中重点介绍。 Java 8 Camel 2.18是第一个需要Java 1.8的版本(例如,容易记住的Camel 2.18 Java1.8。Camel2.17 Java 1.7)。 我们采取了谨慎的…

cors跨域_Spring Boot 中通过 CORS 解决跨域问题

(给ImportNew加星标,提高Java技能)转自:江南一点雨今天和小伙伴们来聊一聊通过CORS解决跨域问题。同源策略很多人对跨域有一种误解,以为这是前端的事,和后端没关系,其实不是这样的,说到跨域,就不…

逻辑建模与物理建模_架构层和建模域逻辑

逻辑建模与物理建模在讨论用于建模域逻辑(例如事务脚本,表模块,域模型)的PoEAA模式时,我注意到人们对域模型模式是最好的印象(尽管印象不对)。 因此,他们开始将其应用于所有内容。 …