3.4.1 爬取王者荣耀英雄皮肤实战

news/2024/9/18 10:11:40/ 标签: python, 爬虫

第四节:爬取王者荣耀英雄皮肤实战

课程目标

  • 爬取王者荣耀英雄皮肤实战

课程内容

编码实现
爬虫部分
python">import requests  # 导入requests库,用于发送HTTP请求
from fake_useragent import UserAgent  # 导入UserAgent库,用于生成随机的User-Agent
import time  # 导入time库,用于添加延时
import bs4  # 导入BeautifulSoup库,用于解析HTMLimport os  # 导入os库,用于操作文件系统# 设置目标网页的URL
url = "https://pvp.qq.com/web201605/herolist.shtml" # 创建UserAgent对象,用于生成随机User-Agent
us = UserAgent()# 设置HTTP请求的headers,模拟浏览器访问
headers = {"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6","cache-control": "max-age=0","priority": "u=0, i","sec-ch-ua": "\"Chromium\";v=\"128\", \"Not;A=Brand\";v=\"24\", \"Microsoft Edge\";v=\"128\"","sec-ch-ua-mobile": "?0","sec-ch-ua-platform": "\"Windows\"","sec-fetch-dest": "document","sec-fetch-mode": "navigate","sec-fetch-site": "none","sec-fetch-user": "?1","upgrade-insecure-requests": "1","user-agent": us.random  # 使用UserAgent生成的随机User-Agent
}# 发送GET请求获取网页内容
res = requests.get(url=url, headers=headers)# 修改相应内容解码,因为网页编码可能是GBK
html_text = res.content.decode('gbk')# 使用BeautifulSoup解析HTML内容
soup = bs4.BeautifulSoup(html_text, 'html.parser')# 找到包含英雄列表的<ul>标签
ul = soup.find("ul", {"class": "herolist clearfix"})# 找到所有<li>标签,代表每个英雄
lis = ul.find_all('li')# 设置图片保存的目录
save_dir = "imgs"
os.makedirs(save_dir, exist_ok=True)  # 如果目录不存在,则创建它# 遍历每个英雄的<li>标签
for li in lis:# 获取英雄图片的URLsrc = li.a.img.get('src')# 获取英雄的名字name = li.a.img.get('alt')# 补全图片URLsrc_url = "https:" + src# 发送请求下载图片img_res = requests.get(src_url, headers=headers)# 定义图片保存的路径base = os.path.join(save_dir, f"{name}.jpg")# 打开文件并写入图片内容with open(base, "wb") as f:f.write(img_res.content)# 打印下载完成的信息print(f"{name} 皮肤下载完成,保存路径为 {base}")# 等待1秒,防止请求过快time.sleep(1)

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

相关文章

RabbitMQ如何保证消息不丢失(面试版)

下图是RabbitMQ消息的发送过程&#xff0c;在任何环节消息都有可能丢失&#xff1a; 生产者确认机制 开启生产者确认机制&#xff0c;确保生产者的消息能到达队列 RabbitMQ提供了publisher confirm 机制来避免消息发送到MQ过程中丢失 。 消息发送到MQ后 &#xff0c; 会返回一…

MQTT学习:MQTT vs AMQP,mosquitto安装,调试工具mqttfx mqttx

前言 物联网vs互联网? 数据量/数据源:物联网的数据多是设备的自动采集,其数量远远超过互联网,互联网的数据更多是人工生成的 MQTT 协议(Message Queuing Telemetry Transport)vs AMQP 协议(Advanced Message Queuing Protocol)是两种在物联网中广泛使用的协议。 物联网…

SQL存储过程:数据库编程的瑞士军刀

SQL存储过程&#xff1a;数据库编程的瑞士军刀 在数据库管理系统中&#xff0c;存储过程是一种强大的工具&#xff0c;它允许开发者将SQL代码封装在可重用的单元中。存储过程不仅可以提高数据库操作的效率&#xff0c;还可以增强数据的安全性和一致性。本文将详细介绍SQL存储过…

速盾:如何选择适合企业的高防 IP 和 CDN?

在当前互联网时代&#xff0c;企业面临着越来越多的网络安全威胁&#xff0c;其中之一就是DOS/DDOS攻击。为了保护企业的在线业务&#xff0c;很多企业都会选择使用高防IP和CDN服务。然而&#xff0c;如何选择适合企业的高防IP和CDN服务呢&#xff1f;下面是一些关键因素可以帮…

《黑神话:悟空》游戏中的福建元素

《黑神话&#xff1a;悟空》作为一款深受玩家喜爱的动作角色扮演游戏&#xff0c;不仅在游戏剧情和角色设计上独具匠心&#xff0c;还巧妙地融入了丰富的中国传统文化元素&#xff0c;其中福建元素尤为突出。以下是对游戏中福建元素的详细解析&#xff1a; 一、地域文化与背景…

本地部署一个WordPress博客结合内网穿透实现异地远程访问本地站点

文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式&#xff1a;4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站&#xff0c…

十分钟弄懂最快的APP自动化工具uiautomator2

相信很多使用appium做过APP自动化的人都深有感触&#xff1a; appium运行慢、时间长uiautomatorviewer定位元素时得关掉appium server在低版本的appium上获取toast需要切换automationName 现在有一款自动化测试工具uiautomator2&#xff0c;它几乎完美的避免了以上的问题。简…

CSS选择器的魔法:探索:not-child()与:nth-child()

CSS选择器是前端开发中的强大工具&#xff0c;它们允许我们以精确的方式选择和操作网页上的元素。在这篇文章中&#xff0c;我们将深入探讨两个非常有用的CSS选择器&#xff1a;:not-child()和:nth-child()。通过这些选择器&#xff0c;我们可以创建动态且具有吸引力的网页布局…

如何监控Eureka集群:Prometheus与Grafana的监控集成

如何监控Eureka集群&#xff1a;Prometheus与Grafana的监控集成 在微服务架构中&#xff0c;Eureka作为服务注册与发现的解决方案扮演着关键角色。为了确保Eureka集群的健康和性能&#xff0c;监控其状态是至关重要的。Prometheus和Grafana是现代监控和可视化工具的佼佼者&…

全志/RK安卓屏一体机:医疗自助服务终端,支持鸿蒙国产化

医疗自助服务终端 为了解决传统医疗模式下的“看病难、看病慢”等问题&#xff0c;提高医疗品质、效率与效益&#xff0c;自助服务业务的推广成为智慧医疗领域实现信息化建设、高效运作的重要环节。 医疗自助服务终端是智慧医疗应用场景中最常见的智能设备之一&#xff0c;它通…

Linux虚拟机搭建K8S环境

文章目录 一、环境准备二、系统初始化三、部署master四、添加node节点五、部署网络六、部署dashboard七、登录dashboard面板 一、环境准备 首先在vmware上新建4台相同配置的虚拟机&#xff0c;除了IP和主机名外&#xff0c;其余配置相同。由于是搭建K8S初始环境&#xff0c;没…

-[meetingbot4ios.AppDelegate window]: unrecognized selector sent to instance

这个错误的困扰了我半天&#xff0c;具体错误如下&#xff1a; *** Terminating app due to uncaught exception NSInvalidArgumentException, reason: -[meetingbot4ios.AppDelegate window]: unrecognized selector sent to instance 0x60000370c0c0 *** First throw call …

bash代码片段snippets

bash代码片段 # Rename all *.txt to *.text for file in *.txt; domv -- "$file" "${file%.txt}.text" donewhile read x z y; doof"xag.1/$x.png" if"xag/$y.png"cp $if $of done < db.log tree -L 2 | sed s/\xc2\xa0/ /g &g…

以数据安全筑牢新时代旅游安全之基,硬盘文件数据销毁,硬盘销毁

在数字化高速发展的时代&#xff0c;旅游行业也迎来了大数据的浪潮。全国旅游标准化技术委员会近日发布标准《旅游大数据安全与隐私保护要求&#xff08;征求意见稿&#xff09;》&#xff0c;并公开征求意见&#xff0c;截止时间为 2024 年 10 月 8 日。这一举措无疑为新时代旅…

Eureka的生命周期管理:服务注册、续约与下线的完整流程解析

目录 引言Eureka概述 2.1. 什么是Eureka 2.2. Eureka的核心概念Eureka服务注册的流程 3.1. Eureka客户端的启动 3.2. 服务实例向Eureka Server注册 3.3. Eureka Server的处理与响应Eureka服务续约的流程 4.1. 心跳机制的作用 4.2. 客户端续约的流程 4.3. 续约失败的处理 4.4. …

如何在Java中使用protobuf

写在前面 本文看下在Java中如何使用protofbuf。 1&#xff1a;介绍 1.1&#xff1a;什么是protobuf 是一种数据格式&#xff0c;同json&#xff0c;xml&#xff0c;等。但是一种二进制数据格式。 1.2&#xff1a;强在哪里&#xff1f;为啥要用&#xff1f; 小&#xff0c…

Linux基础知识(一、什么是Linux)

一、Linux之父——林纳斯本纳第克特托瓦兹&#xff08;Linus Benedict Torvalds&#xff09; Linux操作系统最初是在1991年10月份由芬兰赫尔辛基大学的在校生Linus Torvalds所发布,最初被发布的LINUX0.02版本因其高质量的代码与开放源代码&#xff0c;迅速引起了一大批黑客的加…

【大模型LLMs】文本分块Chunking调研LangChain实战

【大模型LLMs】文本分块Chunking调研&LangChain实战 Chunking策略类型1. 基于规则的文本分块2. 基于语义Embedding分块3. 基于端到端模型的分块4. 基于大模型的分块 Chunking工具使用&#xff08;LangChain&#xff09;1. 固定大小分块&#xff08;字符&token&#xff…

数据结构:(OJ题力扣 20). 有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

57. 插入区间【 力扣(LeetCode) 】

一、题目描述 给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表 intervals&#xff0c;其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束&#xff0c;并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示另一…