手把手教你爬取天堂网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批量创建复工证明

相关文章
|
TensorFlow 算法框架/工具 Python
TensorFlow的历史版本与对应Python版本
TensorFlow的历史版本与对应Python版本
TensorFlow的历史版本与对应Python版本
|
监控 安全 大数据
关于微信支付相关安全性问题
关于微信支付相关安全性问题
关于微信支付相关安全性问题
|
编解码 人工智能 安全
快来试试这个开箱即用的万相2.1服务!!!
阿里云万相2.1系列提供高效灵活的视频生成解决方案,支持文生视频、图生视频等多模态任务。通过阿里云计算巢与ComfyUI推出的快速视频生成服务,用户可轻松制作微电影或短视频。针对长视频生成,提供了三种方法:使用高性能显卡、首尾帧拼接和补帧模型。此外,还内置工作流实现文生图和图生图功能,简单易用。部署说明及使用流程详细列出,方便开发者快速上手。访问计算巢了解更多有趣服务。
物联网卡:带你快速了解物联网卡充值失败的原因
物联网卡充值失败可能由多种原因引起,下面是一些常见的原因及相应的操作建议,以帮助您解决问题:
|
Oracle 关系型数据库 数据管理
【赵渝强老师】Oracle数据库的闪回技术
在Oracle数据库操作中,难免会遇到误删表或提交错误事务等问题,可能导致数据丢失甚至数据库停止运行。传统解决方法依赖备份恢复,但需提前准备正确备份。为此,Oracle提供了闪回技术,无需备份即可快速恢复数据。它支持7种类型的操作,如闪回查询、版本查询、表恢复等,能有效应对逻辑损坏和用户错误。闪回技术基于还原(undo)数据管理,启用自动管理后可实现高效恢复。
575 0
|
监控 安全 物联网
物联卡:物联网卡和SIM卡的不同
物联网卡(IoT SIM卡)和普通SIM卡在多个方面存在显著的差异,这些差异主要体现在应用场景、功能特点、资费结构、管理方式等方面。以下是它们之间区别的详细分析:
|
JSON jenkins 测试技术
Python接口自动化测试框架(工具篇)-- 接口测试工具HTTPRUNNER
本文介绍了Python接口自动化测试框架HTTPRunner,包括其安装、使用方法,并通过实际操作演示了如何利用HTTPRunner进行接口测试,同时还探讨了HTTPRunner作为接口自动化测试解决方案的可能性和实用性。
991 0
|
机器学习/深度学习 人工智能 自然语言处理
AI案例研究与项目实战
探索AI实践:从智能客服到图像识别、推荐系统、语音助手,再到智能仓储和金融风控,这些案例展示AI如何解决实际问题。通过NLP、深度学习、机器学习等技术,企业如阿里巴巴、京东等改善客户服务,医疗、安防领域利用图像识别创新,而个性化推荐提升用户体验。AI不仅改变交互方式,还优化仓储物流、保障金融安全,实操项目助力技术应用能力提升。
1796 3
|
安全 C++
c++ 无锁队列的简单实现
c++ 无锁队列的简单实现
1048 0

热门文章

最新文章