↑ 关注 + 星标 ,后台回复【大礼包】送你2TPython自学资料

好消息:Python学习交流群,已经建立,猛戳加入


之前我发过一些爬虫的文章,不过一直没发过爬取图片的,今天就给大家分享一篇吧!

/1 前言/

上篇文章我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。

/2 图片网址解析/

1. 我们首先来分析一下这个图片的地址在哪里。我们选择图片,然后右击网页检查,可以看到图片的路径,如下图所示。

2. 将其单独放出来,如下图所示。

3. 可以看到就是图片的链接,而src就图片的地址,所以我们可以找它的上一级标签

。如果再找不到那就再找上一级以此类推(找到越详细内容更准确)。使用选择器xpath,获取到src的值(网址后缀)之后,将后缀加上“https前缀”就可以得到每一个网址,如下图所示:

4. 之后尝试运行,如下图所示,可以获取到具体的网址。

5. 我们再对这个网址进行请求(参考一个请求的方法)分析数据。

6. 我们以这个鱼的图片为例,点击它来到二级页面。

7. 右键检查 可以看到我们要获取的是src的地址,如下图所示。

8. 获取图片的源码,如下图所示。

9. Xpath 获取到路径,为了方便区分图片的名字,如下图所示。

/3 下载图片/

1. 为方便储存,新建一个filename来作为保存的路径,如下图所示。

2. 也就是说你需要在Python代码的同级目录,提前新建一个文件夹,名叫“天堂网爬的图片”,如果没有这个文件夹的话,将会报下图的错。

3. 使用with函数进行文件的打开和写入,下方代码的含义是创建一个文件,代码框里边有具体的注释。

"wb" # 意思是以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。"as f" # 意思是写入一个叫f的文件。"f.wirite(html)" # 意思是说把html的内容写入f这个文件。

4. 下面是各个编码代表的含义,可以学习一下。

5. 基于以上代码,基本上就可实现批量下载。接下来,我们继续优化一下。我们导入一个叫fake_useragent的库 fake_useragent第三方库,来实现随机请求头的设置。

fromfake_useragent import UserAgent ua =UserAgent()print(ua.ie)   #随机打印ie浏览器任意版本print(ua.firefox)#随机打印firefox浏览器任意版本print(ua.chrome)  #随机打印chrome浏览器任意版本print(ua.random)  #随机打印任意厂家的浏览器

6. 我们可以再初始化init方法,添加ua.random,让它随机的产生;其中UserAgent代码如图:(这里设置随机产生50个挑选其中一个进行请求)

7. 最终实现的效果图,终端显示如下图所示。

8. 将图片自动下载到本地后的效果图,高清的噢~

9. 至此,针对解析出来的图片地址予以批量下载的任务已经完成,接下来自己可以开心的去浏览图片啦。

10. 不建议大家爬取太多数据,这样会给服务器增大负载,浅尝辄止即可。

/4 小结/

本文基于理论篇,通过Python 中的爬虫库 requestslxmlfake_useragent,带大家进行网页结构的分析以及网页图片地址数据的提取,并且针对解析出来的图片地址予以批量下载,方法行之有效,欢迎大家积极尝试。

如果对本文源码感兴趣,网页打开链接直接下载

https://alltodata.cowtransfer.com/s/a794ef3ab7e54f

推荐两个团队技术号

Github研习社:目前是由国内985博士,硕士组成的团体发起并运营,主要分享和研究业界开源项目,学习资源,程序设计,学术交流。回复就无套路送你一份自学大礼包。机器学习研习社目前是由国内985博士,硕士组成的团体发起并运营。主要分享和研究机器学习、深度学习、NLP 、Python,大数据等前沿知识、干货笔记和优质资源。回复就无套路送你一份机器学习大礼包。

推荐阅读10000字Pandas基础+进阶笔记!

如果你觉得文章有帮助,点个“好看”

代码里无图片地址_项目实战:爬高清图片相关推荐

  1. Android视频《手机影音_项目实战》-杨光福-专题视频课程

    Android视频<手机影音_项目实战>-49877人已学习 课程介绍         手机影音项目是真实的上线项目,本视频在原项目基础上,进行了新技术的更新和优化.该项目包括本地音乐播放 ...

  2. vue中当图片地址无效的时候,显示默认图片的方法

    1.项目中经常需要展示图片,很可能就会碰到图片地址无效的情况,比如图片地址不对,或者后台拿到图片地址后,该地址无效,或者数据库中没有该图片等情况.这时候,图片就会显示一个叉,或者直接报错,图片裂开,对 ...

  3. 010:图片类爬虫项目实战

    之间我们学习了使用Urllib模块手写图片爬虫,在本章内容中,我们会以图片类爬虫为例,为大家讲解如何通过Scrapy框架实现图片爬虫项目. 利用Urllib手写爬虫回顾: 之前在实战的时候使用Urll ...

  4. Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...

    资源介绍 课程简介:xa0xa0 Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 教学视频 ----------------------课程目录 Python项目实战篇 ...

  5. Qt项目实战2:图片查看器QImageViewer

    在博文Qt学习笔记2:QMainWindow和QWidget的区别中介绍了使用空的Qt项目创建带有菜单栏.工具栏的界面. 这里,使用一个简单的图片查看器项目,来熟悉一下Qt的图片显示和基本操作. 该项 ...

  6. android 保存退出之前的页面_项目实战:Qt+Android模拟操作器(模拟操作app,打开,点击,输入,获取验证码等等)...

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109313803 各位读者,知识无穷而人力有穷 ...

  7. ffmpeg 获取帧率_项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109827936 各位读者,知识无穷而人力有穷 ...

  8. 双y轴设置 颜色_项目实战:Qt多段Y轴折线图框架(双Y轴段折线、支持拽拖、浮动游标显示X值各段Y值、实时下位机数据)...

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/111660400长期持续带来更多项目与技术分享 ...

  9. app inventor调用图像识别_项目实战-图像识别项目-通过QT制作图形界面并调用百度AI进行图像识别(一)...

    转自迅为4412开发板项目实战教程 硬件平台:iTOP-4412开发板 项目名称:图像识别项目 本文我们来学习利用QT构建一个图形界面并用QT调用百度AI的接口 一.添加arm编译套件 打开QT cr ...

最新文章

  1. Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用
  2. mysql数据库操作语句大全
  3. 数据库系统概念总结:第十四章 事务
  4. Pow(x, n)Python解法
  5. C语言在计算机专业的功能,C语言程序设计在高职院校计算机专业教学中重要作用.pdf...
  6. [改善Java代码]性能考虑,数组是首选
  7. JavaScript中对于函数的形参实参个数匹配是如何做的?
  8. 10截图时屏幕变大_刚刚才知道!华为手机还有7种截图方式,其中1种居然能隔空截图...
  9. Pannellum:实例之全景图自动旋转
  10. 单片机c语言 课后答案,十天学会单片机C语言_郭天祥---课后习题答案
  11. matlab 时钟日历教程,Flash制作电子日历时钟教程
  12. ACDSee 10中文版+注册码
  13. 程序员吃饭段子Java吃完就走_爆笑段子:一朋友是个程序员,有一次和他吃饭,他愁眉苦脸的说...
  14. using index
  15. strace命令解析
  16. GCC 编译 C 语言文件
  17. 事务的基本概念及Mysql事务实现原理
  18. CNN剖析:如果你愿意一层一层剥开CNN的心
  19. windows下Ubuntu使用chmod提示No such file or directory
  20. 前端vue基于onlyoffice实现在线预览

热门文章

  1. php 当前ip_php获取本机ip(远程IP地址)
  2. Java GregorianCalendar setTimeZone()方法与示例
  3. Redis 如何实现限流功能?
  4. 美团面试题 | JVM 堆内存溢出后,其他线程是否可继续工作?
  5. JAVA基础之自定义容器实现
  6. python爬虫 正则表达式 re.finditer 元字符 贪婪匹配 惰性匹配
  7. centos7 docker删除端口映射_centos7安装docker,结合docker安装mysql,学习简单使用
  8. 4 error C2220: 警告被视为错误 - 没有生成“object”文件 (..\..\src\caffe\util\math_functions.cpp)
  9. html动态跟随鼠标效果,使用JS实现气泡跟随鼠标移动的动画效果
  10. php实现文本替换,php 如何实现文字替换