手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇
/1 前言/
上篇文章我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。
/2 图片网址解析/
1. 我们首先来分析一下这个图片的地址在哪里。我们选择图片,然后右击网页检查,可以看到图片的路径,如下图所示。
2. 将其单独放出来,如下图所示。
3. 可以看到<a href>就是图片的链接,而src就图片的地址,所以我们可以找它的上一级标签<ul>。如果再找不到那就再找上一级以此类推(找到越详细内容更准确)。使用选择器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 中的爬虫库 requests 、lxml、fake_useragent,带大家进行网页结构的分析以及网页图片地址数据的提取,并且针对解析出来的图片地址予以批量下载,方法行之有效,欢迎大家积极尝试。 如果需要本文源码的话,请在公众号后台回复“高清图片”四个字进行获取,觉得不错,记得给个star噢。
------------------- End -------------------
往期精彩文章推荐:
手把手用Python教你如何发现隐藏wifi
手把手教你用Python做个可视化的“剪刀石头布”小游戏
手把手教你使用Python批量创建复工证明
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
再见 Python,Hello Julia!
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 随着Python的停滞不前,一个新的热门竞争对手崛起了。 如果Julia对你来说仍是个谜,别担心。 不要误会我的意思。Python的流行仍然受到计算机科学家、数据科学家、人工智能专家,以及他们组成的稳固社区的坚定支持。 但是,如果你曾经和这些人一起共进过晚餐,那么你就应该知道他们对于Python的弱点有多少抱怨。从速度缓慢到需要过多的测试,再到尽管进行了先前的测试仍然会产生很多运行时错误 - 这些已经足够让人恼火了。 这就是为什么越来越多的程序员开始采用其他语言的原因,这些语言中最受欢迎的是Julia、Go和Rust。Julia非常适合数学和技术任务,Go非常适合模块化程序,而Rust是系统编程的首选。 由于数据科学家和人工智能专家需要处理许多数学问题,因此Julia成为他们的赢家。即使经过严格的审视,Julia仍然具有Python无法战胜的优势。 Python的禅与Julia的贪婪 当人们创建一种新的编程语言时,他们这样做的目的是希望保留旧语言中的好特性,并修复其坏特性。 从这个意义上...
- 下一篇
好程序员web前端培训分享JavaScript学习笔记SASS
好程序员web前端培训分享JavaScript学习笔记SASS,世界上最成熟、最稳定、最强大的专业级CSS扩展语言!sass是一个 css 的预编译工具也就是能够更优雅的书写 csssass写出来的东西浏览器不认识依旧是要转换成 css 在浏览器中运行这个时候就需要一个工具来帮我们做安装 sass 环境以前的sass需要依赖一个ruby的环境现在的sass需要依赖一个python的环境但是我们的 node 强大了以后,我们只需要依赖node环境也可以需要我们使用 npm 安装一个全局的sass环境就可以了 安装全局 sass 环境 $ npm install sass -g编译 sass有了全局的sass环境以后我们就可以对sass的文件进行编译了sass的文件后缀有两种,一种是.sass一种是.scss他们两个的区别就是有没有{}和;.scss文件h1 { width: 100px; height: 200px;}.sass文件h1 width: 100px height: 200px.scss 文件h1 { width: 100px; height:...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果