Python制作手游《和平精英》游戏资料查询助手
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
Python学习交流群:1039649593
前言
《和平精英》这个游戏想必大家都玩过了,今天来教大家制作一个《和平精英》游戏的资料查询助手
https://gp.qq.com/main.shtml
1、我们是不是要去获取这些数据《和平精英》武器配件 (爬虫部分)
首先:对于 武器一个详情页url地址发送请求, 获取 每个武器的url地址
其次:对于 每个武器的url地址发送请求 然后获取每个武器的一些基本信息
2、爬虫代码实现思路
- 遇到到反爬怎么办,遇到加密怎么办:
字体加密、JS加密、动态数据网页参数变化怎么找,在哪找 - response.text:获取网页的文本数据、字符串
- json() :json字典数据怎么取值? 根据键值对取值
- content
- 状态码
开始敲代码
请求头: 把python代码伪装成浏览器对服务器发送一个请求 然后服务器就会给我们返回一个response数据
import requests # 第三方模块headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
}
response = requests.get(url=html_url, headers=headers)
def get_arms_info():url = 'https://gp.qq.com/cp/a20190522gamedata/pc_list.shtml'response = get_response(html_url=url)selector = parsel.Selector(response.text)# css选择器 就根据标签属性提取相关内容href = selector.css('#section-container .clear li a::attr(href)').getall()titles = selector.css('#section-container .clear li a::attr(title)').getall()# 通常我们要获取一个列表里面 每个元素 是不是要通过遍历 for循环zip_data = zip(href, titles)lis = []for index in zip_data:dit = {'物品名称': index[1],'详情页': index[0]}lis.append(dit)pd_data = pd.DataFrame(lis)pd.set_option('display.max_columns', None)print(pd_data)arms_num = input('请输入你要查询的武器序号: ')if int(arms_num) <= len(lis):arms_url = lis[int(arms_num)]['详情页']response_1 = get_response(arms_url)selector_1 = parsel.Selector(response_1.text)kind = selector_1.css('.wea_class::text').get() # 武器种类bullet = selector_1.css('.wea_bullet::text').get() # 子弹口径skin_list = selector_1.css('.parts_list li .skin_name::text').getall() # 子弹口径# 把列表转成我们字符串类型skin_name = '/'.join(skin_list)advantage = selector_1.css('.merit_text p:nth-child(2)::text').get()defect = selector_1.css('.merit_text p:nth-child(4)::text').get()st_hurt = selector_1.css('.merit_rt_st li::text').getall()tb_hurt = selector_1.css('.merit_rt_tb li::text').getall()print('--'*50)print('武器名字: ', lis[int(arms_num)]['物品名称'])print('武器的类型: ', kind)print('子弹', bullet)print('最佳配件: ', skin_name)print('优点: ', advantage)print('缺点: ', defect)print('--'*50)print('武器击中身体伤害:')print(f'裸装击中身体:{st_hurt[0]}枪淘汰')print(f'一级甲击中身体:{st_hurt[1]}枪淘汰')print(f'二级甲击中身体:{st_hurt[2]}枪淘汰')print(f'三级甲击中身体:{st_hurt[3]}枪淘汰')print('--' * 50)print('武器击中头部伤害:')print(f'裸装击中头部:{tb_hurt[0]}枪淘汰')print(f'一级头击中头部:{tb_hurt[1]}枪淘汰')print(f'二级头击中头部:{tb_hurt[2]}枪淘汰')print(f'三级头击中头部:{tb_hurt[3]}枪淘汰')print('--' * 50)else:print('输入有误')
def get_fitting_info():"""配件"""html_url = 'https://gp.qq.com/cp/a20190522gamedata/pc_list.shtml'response = get_response(html_url)selector = parsel.Selector(response.text)titles = selector.css('#section-container2 .clear li a::attr(title)').getall()href = selector.css('#section-container2 .clear li a::attr(href)').getall()zip_data_1 = zip(titles, href)lis = []for index in zip_data_1:title = index[0]index_url = index[1]dit = {'物品名称': title,'详情页': index_url,}lis.append(dit)pd_data = pd.DataFrame(lis)pd.set_option('display.max_columns', None)print('配件分类如下所示:')print(pd_data)fitting_num = input('请输入你要查询的配件序号:')fitting_url = lis[int(fitting_num)]['详情页']html_data = get_response(fitting_url).textsel = parsel.Selector(html_data)fitting_sx = sel.css('.intro_sx dd::text').get()fitting_sy = sel.css('.intro_sy dd::text').get()print('--' * 50)print('配件名字:', lis[int(fitting_num)]['物品名称'])print('配件属性:', fitting_sx)print('配件适用:', fitting_sy)print('--' * 50)
def get_supplies_info():"""物资"""html_url = 'https://gp.qq.com/cp/a20190522gamedata/pc_list.shtml'response = get_response(html_url)selector = parsel.Selector(response.text)titles = selector.css('#section-container3 .clear li a::attr(title)').getall()href = selector.css('#section-container3 .clear li a::attr(href)').getall()zip_data_2 = zip(titles, href)lis = []for index in zip_data_2:title = index[0]index_url = index[1]dit = {'物品名称': title,'详情页': index_url,}lis.append(dit)pd_data = pd.DataFrame(lis)pd.set_option('display.max_columns', None)print('物资分类如下所示:')print(pd_data)supplies_num = input('请输入你要查询的物资序号:')supplies_url = lis[int(supplies_num)]['详情页']html_data = get_response(supplies_url).textsel = parsel.Selector(html_data)supplies_sx = sel.css('.intro_sx dd::text').get()print('--' * 50)print('配件名字:', lis[int(supplies_num)]['物品名称'])print('配件属性:', supplies_sx)print('--' * 50)
def get_car_info():"""载具"""html_url = 'https://gp.qq.com/cp/a20190522gamedata/pc_list.shtml'response = get_response(html_url)selector = parsel.Selector(response.text)titles = selector.css('#section-container4 .clear li a::attr(title)').getall()href = selector.css('#section-container4 .clear li a::attr(href)').getall()zip_data_2 = zip(titles, href)lis = []for index in zip_data_2:title = index[0]index_url = index[1]dit = {'物品名称': title,'详情页': index_url,}lis.append(dit)pd_data = pd.DataFrame(lis)pd.set_option('display.max_columns', None)print('物资分类如下所示:')print(pd_data)supplies_num = input('请输入你要查询的物资序号:')supplies_url = lis[int(supplies_num)]['详情页']html_data = get_response(supplies_url).textsel = parsel.Selector(html_data)supplies_sx = sel.css('.intro_sx dd::text').get()print('--' * 50)print('配件名字:', lis[int(supplies_num)]['物品名称'])print('配件属性:', supplies_sx)print('--' * 50)
if __name__ == '__main__':while True:string = """===================================和平精英资料查询助手V1.0版本0.武器 1.配件 2.物资 3.载具
==================================="""print(string)word = input('请输入你要查询的内容(输入n退出): ')if word == '0':get_arms_info()elif word == '1':get_fitting_info()elif word == '2':get_supplies_info()elif word == '3':get_car_info()elif word == 'n':breakelse:print('请正确输入~~')
结果展示
Python制作手游《和平精英》游戏资料查询助手相关推荐
- Python制作吃鸡各数据资料查询助手,带你做理论王者~
前言 大家早好.午好.晚好吖 ❤ ~ 吃鸡想必大家都玩过了 今天来教大家制作一个资料查询助手 1.我们是不是要去获取这些数据 武器配件 首先:对于 武器一个详情页url地址发送请求, 获取 每个武器的 ...
- 上线两周后 腾讯吃鸡手游和平精英怎么样了
和平精英5月8日正式上市后,引发众媒体和用户热议,新浪财经,华尔街见闻都曾报道,和平精英更是登上了新浪微博的首页.两周过去,和平精英的表现到底如何了?上市之前,开发和平精英的游戏厂商腾讯股价连续四天上 ...
- 和平精英绝地求生服务器维护,手游和平精英辅助绝地求生今天维护什么时候结束?今天几点可以...
绝地求生现在正在维护中,这个公告昨天官方就已经提前告知,这次维护和前几次一样,还是预计四小时.如果提前完成更新工作会提前开机,反之延迟开机,总之大家要以最后结束公告为准,以下是本次维护说明,一起来看看 ...
- Python制作某火爆游戏资料查询助手
1.我们是不是要去获取这些数据<和平精英>武器配件 (爬虫部分) 首先:对于 武器一个详情页url地址发送请求, 获取 每个武器的url地址 其次:对于 每个武器的url地址发送请求 然后 ...
- python身份证号掩盖出生日期的代码_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...
大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...
- python身份证验证系统_利用Python制作全国身份证号验证及查询系统!就问你吊不吊!...
大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及 ...
- 用python制作全国身份证号验证及查询系统
大家好哇,又是一个愉快的周末,今天本鸟给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性 ...
- 视频教程-UE4 Unity FPS 安卓手游 和平战场 逆向设计开发-其他
UE4 Unity FPS 安卓手游 和平战场 逆向设计开发 精通windows下C,C++编程,深入理解指针,数据结构,精通linux下C,C++编程,多线程及锁机制,进程间通信,TCP和IP协议, ...
- 【趣味案例】用python制作全国身份证号验证及查询系统
今天给大家分享1个有趣的实战项目,用python制作"全国身份证号验证及查询系统",成品界面如下图: 本系统可以实现身份证号真伪验证,年龄.性别及发证地查询,看起来是不是很高大上, ...
最新文章
- C语言网络编程:socket函数
- 快速搭建一个网关服务,动态路由、鉴权看完就会(含流程图)
- 学好python需要什么基础-自学Python需要怎样的基础和准备
- Ubuntu用apt-get安装报错:E: Could not get lock /var/lib/dpkg/lock-frontend - open (11:资源暂时不可用)
- 虚拟路由器冗余协议(VRRP)原理与实验
- 备忘:C++基础 -- 数据类型的学习总结
- Go的go-sql-driver/mysql
- 几种身份的创业者优劣势大比拼
- Java 获取目录的大小
- 适用初学者的5种Python数据输入技术
- 从不同步的代码块中调用了对象同步方法。_Java中Synchronized的用法
- python列表添加元组_python 列表与元组的操作简介
- 微软 Exchange Autodiscover 协议存bug,数十万域凭据可遭泄露
- iOS 视频播放器开发(一)
- 微信小程序图片上传至mysql数据库
- [ScyllaHide] 04 ScyllaHide配置报错原因定位
- 【SDCC讲师专访】Swoole开源项目创始人韩天峰:PHP是最好的编程语言
- 《工程伦理与学术道德》第一章习题
- vue view design 图标选择器
- Mac系统升级Python版本(Python2.7升级到Python3.8.2)
热门文章
- C# 调用微软自带的语音识别
- 【Docker】Docker进阶(二)
- 漫谈程序员系列:程序员该不该考虑初创公司
- iOS 9:四、设置信任
- InsightFace又出新作!合成更真实更多样近红外人脸图片,助力“近红外-可见光”跨域人脸识别...
- 谷歌html弹出ie页面,如何从谷歌跳转IE,打开指定的网址
- stm32直流电机控制—PID算法篇
- 如何利用爬虫工具实现竞品价格监控
- calibre的注册表残留删除
- python高清壁纸_爬虫 抓取王者荣耀所有英雄皮肤高清壁纸(完美版本)