手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇

boyanx7个月前技术教程28

/1 前言/

上篇文章 手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。

/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 中的爬虫库 requestslxmlfake_useragent,带大家进行网页结构的分析以及网页图片地址数据的提取,并且针对解析出来的图片地址予以批量下载,方法行之有效,欢迎大家积极尝试。

如果需要本文源码的话,请在公众号【Python爬虫与数据挖掘】后台回复“高清图片”四个字进行获取,觉得不错,记得给个star噢。

往期精彩文章推荐:

  • 手把手用Python教你如何发现隐藏wifi
  • 手把手教你用Python做个可视化的“剪刀石头布”小游戏
  • 手把手教你使用Python批量创建复工证明 想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

相关文章

关于非易失堆叠存储器,IEDM 2018有哪些探讨?IEDM 2019有何期待

来源:本文由公众号半导体行业观察(ID:icbank)摘译自「thememoryguy」,作者 Jim Handy,Ron Neale,谢谢。去年年底,权威行业会议IEDM再一次为电子器件行业提供了全...

了解静态随机存取存储器的工作原理

静态随机存取存储器(简称SRAM)是计算机系统中重要的存储器之一,广泛用于缓存、寄存器和其他需要快速读写的场合。与动态随机存取存储器(DRAM)相比,SRAM具有更快的存取速度和更高的可靠性。一、SR...

《博德之门3》八号补丁更新日志 子职业调整与修复等

近日拉瑞安发布《博德之门3》八号补丁更新日志,该补丁压力测试版第三次更新已正式上线。本次更新主要针对多项崩溃问题与玩法修复,还包含全新子职业的平衡性调整与修复。八号补丁测试版更新日志:崩溃修复与玩法优...

微软解释了Surface Duo设备角度传感器带来的独特铰链姿势

来源:cnBeta.COM去年10月,微软发布了运行Android系统的Surface Duo移动设备,全面支持Play Store应用。 Surface Duo配备了两块5.6英寸显示屏,而且它可以...

Istio 1.23 发布:环境模式升级与重要功能更新!

2024 年 8 月 16 日,Istio 1.23 发布。该版本带来了环境模式的重大改进,包括性能提升、功能增强以及 DNS 自动分配和重试策略的优化,同时宣布集群内 Operator 将被弃用。环...

如何快速做出酷炫的Excel动态图表?

作为一名天天要跟Excel打交道的 @运营菌 ,反正我认为自己做的图表就挺酷炫的。不信,你们来看看~上面这些酷炫的动态图表,只是简单运用了【Excel函数】和【切片器】+【透视表】简单交互的原理。其实...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。