爬虫实例(二)—— 爬取高清4K图片

news/2025/2/7 8:46:16/

大家好,我是 Enovo飞鱼,今天继续分享一个爬虫案例,爬取高清4K图片,加油💪。

目录

前言

增加异常处理

增加代码灵活性

基本环境配置

爬取目标网站

分析网站页面

具体代码实现

图片下载示例

感谢支持🙇‍+👍


前言

上篇内容,我们已经了解并惊叹于5行Python代码的强大,今天我们会继续挖掘,并且在原有的基础上进行不断地完善

我们将考虑到多方面的内容,例如,增加异常处理,增加代码灵活性,加快爬取速度……

  • 增加异常处理

由于爬取上百页的网页,中途很可能由于各种问题导致爬取失败,所以增加了 try except 、if else 等语句,来处理可能出现的异常,让代码更健壮。

  • 增加代码灵活性

初版代码由于固定了 URL 参数,所以只能爬取固定的内容,但是人的想法是多变的,一会儿想爬这个一会儿可能又需要那个,所以可以通过修改 URL 请求参数,来增加代码灵活性,从而爬取更灵活的数据。


基本环境配置

  • 版本:Python3

  • 系统:Windows

  • 相关模块:requests,lxml

  • 开发工具:Pycharm

在这里我使用的是 anaconda ,众所周知这是一个软件,但是它的环境是比较全面的,在之前的学习中,我们用的是这个软件。

anconda,可以理解成运输车,每当下载anconda的时候,里面不仅包含了python,还有180多个库(武器)一同被打包下载下来

下载完anconda之后,再也不用一个个下载那些库了。


爬取目标网站

 


分析网站页面

有一说一是真的多,看这惊人的页数 


接下来就该看看怎么拿到表情包图片的 url 了,首先打开谷歌浏览器,然后点 F12 进入爬虫快乐模式

然后完成下图的操作,先点击1号箭头,然后再选中一个表情包即可,红色框中就是我们要爬取的对象,其中表情包的src就在里面

 如下图:



现在我们就搞清楚了怎么拿到表情包的url了,下一步我们复制 Xpath ,

不了解Xpath的小伙伴们可以去学习一下,也是非常好用的在 XML 文档中查找信息的语言。

如下图, 

至此,我们可以写代码了!!!


具体代码实现

 相关代码:

import requests
from lxml import etreeheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0'
}
x = input('输入页数: ')
for page in range(1, int(x)):if page == 1:url = 'https://pic.netbian.com/4kyingshi/'else:url = 'https://pic.netbian.com/4kyingshi/index_' + str(page) + '.html'response = requests.get(url=url, headers=headers)response.encoding = 'gbk'  # 或者gb2312page_text = response.texttree = etree.HTML(page_text)# 以下三种均可# li_list = tree.xpath('//div[@id="main"]/div[3]/ul/li[1]/a/img')#li_list = tree.xpath('//div[@class="slist"]/ul/li')li_list = tree.xpath('//div[@id="main"]/div[@class="slist"]/ul/li')for li in li_list:img_src = 'https://pic.netbian.com/' + li.xpath('./a/img/@src')[0]img_name = li.xpath('./a/b/text()')[0] + '.jpg'img = requests.get(url=img_src, headers=headers).contentwith open('./wwww/' + img_name, 'wb') as fp:fp.write(img)print(img_name + '保存')# //*[@id="main"]/div[3]/ul/li[1]/a
# copy xpath

到现在为止,已经拿到了所有的图片的链接和名字,那么就可以开始下载了

运行代码,输入你需要下载的页数即可🐒


图片下载示例

总共是爬了两页图片,做个示例

见下图 


感谢支持🙇‍+👍


http://www.ppmy.cn/news/21160.html

相关文章

如何配置Kafka无消息丢失

今天讨论的主题是如何配置Kafka无消息丢失,主要包含,在Kafka在什么情况下能够保证消息不丢失,以及具体的应对方法。 关于Kafka在什么情况下才能保证消息不丢失,一句话概括,Kafka只对“已提交”的消息做有限度的持久化…

贪心算法(基础)

目录 一、什么是贪心? (一)以教室调度问题为例 1. 问题 2. 具体做法如下 3. 因此将在这间教室上如下三堂课 4. 结论 (二)贪心算法介绍 1. 贪心算法一般解题步骤 二、最优装载问题 (一&#xf…

day52最长递增子序列_最长连续递增序列_最长重复子数组

力扣300.最长递增子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-increasing-subsequence/ 思路 dp数组的含义 dp[i]表示&#xff0c;以nums[i]结尾的最长递增子序列长度 递推公式 假设j在i的前面&#xff0c;如果nums[j]<nums[i]&#xff0c;那么…

设计师都在用的5个设计素材库

作为一名设计师推荐几个设计素材网站&#xff0c;建议收藏起来&#xff01; 1、菜鸟图库 https://www.sucai999.com/?vNTYxMjky 站内平面海报、UI设计、电商淘宝、高清图片、样机模板等素材非常齐全。还有在线抠图、CDR版本转换功能&#xff0c;能有效的为设计师节省找素材时…

【浪漫情人节】送你Python表白神器,祝天下有情人终成眷属

哈哈哈再过十几天就到了一年一度的情人节啦&#xff01;如此浪漫的日子&#xff0c;小王决定用Python写一个简单的表白神器送给大家&#xff0c;祝天下有情人终成眷属&#xff01; 目录 前言 一、Turtle小海龟 1. 基本函数 2. 漂浮爱心 二、Tkinter界面设计 1. 基本…

SLAM数学知识回顾

文章目录1、三角函数2、向量运算&#xff08;1&#xff09;负向量&#xff08;2&#xff09;向量的模&#xff08;3&#xff09;标量与向量的运算&#xff08;4&#xff09;标准化向量&#xff08;5&#xff09;向量的加法和减法&#xff08;6&#xff09;距离公式&#xff08;…

基于Java+SpringBoot+vue+element驾校管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

快来看啊,2023成都Java培训机构排行榜出来啦!

来啦&#xff0c;来啦&#xff01;我带着2023成都最新Java培训机构排行榜来啦。不知道怎么选择一个好的Java培训机构&#xff1f;停止寻觅&#xff0c;别再犹豫&#xff0c;看我这一篇就够啦&#xff01;一、成都动力节点动力节点&#xff0c;09年成立&#xff0c;14年来只专注…