当前位置: 首页 > news >正文

python脚本编程:使用BeautifulSoup爬虫库获取热门单机游戏排行榜

BeautifulSoup是一个便捷的解析html页面元素的python库,此处用来写一个简单的爬虫批量抓取国内游戏资讯网站的近期热门单机游戏排行榜。

网页来源如下所示
请添加图片描述

代码

from bs4 import BeautifulSoup
import requests# get web page
web_url = "https://www.3dmgame.com/jqremphb.html"
response = requests.get(web_url)if response.status_code == 200:print("web page content: ", response.text)# parse with bs4
soup = BeautifulSoup(response.text, "lxml")
print(soup.prettify())# fetch game rank list
divs_with_class = soup.find_all("div", class_="phlist")
print(divs_with_class)# data download, purge, output
game_rank_list = []
i = 0
for item in divs_with_class:i += 1print("--- game item ", i)game = {"name": "","img": "","developer": "","publisher": "","date": "","platform": "","language": ""}# game name name = item.div.a.string# print("name: ", name)game["name"] = name# game pictureimg_url = item.img["data-original"]img_suffix = img_url.split('.')[-1]# print("img_url: ", img_url)# print("img_suffix: ", img_suffix)img = requests.get(img_url)file_path = str(i) + "." + img_suffix # relative file pathgame["img"] = file_pathwith open(file_path, 'wb') as file:file.write(img.content)# game informationlis = item.find_all("li")j = 0for li in lis:j += 1# print("li value: ", li.string)if j == 1:game["developer"] = li.stringelif j == 2:game["publisher"] = li.stringelif j == 3:game["date"] = li.stringelif j == 4:game["platform"] = li.stringelif j == 5:game["language"] = li.stringprint(game)game_rank_list.append(game)print("fetch game data finished, total count: ", len(game_rank_list))

运行结果

网页解析数据:

--- game item  1
{'name': '剑星', 'img': '1.jpg', 'developer': '开发:Shift up', 'publisher': '发行:索尼', 'date': '发售:2025-06-12', 'platform': '类型:动作游戏', 'language': '平台:PC PS5'}
--- game item  2
{'name': '刺客信条:影', 'img': '2.jpg', 'developer': '开发:育碧', 'publisher': '发行:育碧', 'date': '发售:2025-03-20', 'platform': '类型:动作游戏', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  3
{'name': '艾尔登法环:黑夜君临', 'img': '3.jpg', 'developer': '开发:FromSoftware', 'publisher': '发行:万代南梦宫', 'date': '发售:2025-05-30', 'platform': '类型:动作游戏', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  4
{'name': '多重人生', 'img': '4.jpg', 'developer': '开发:11 bit studios', 'publisher': '发行:11 bit studios', 'date': '发售:2025-06-13', 'platform': '类型:冒险游戏', 'language': '平台:PC'}
--- game item  5
{'name': '死亡搁浅2', 'img': '5.jpg', 'developer': '开发:小岛工作室', 'publisher': '发行:索尼,505 Games', 'date': '发售:2025-06-26', 'platform': '类型:角色扮演', 'language': '平台:PS5'}
--- game item  6
{'name': '人渣', 'img': '6.jpg', 'developer': '开发:Gamepires,Croteam', 'publisher': '发行:Devolver Digital,Croteam Publishing', 'date': '发售:2025-06-17', 'platform': '类型:动作游戏', 'language': '平台:PC PS4 XBOXONE'}
--- game item  7
{'name': '怪物猎人:荒野', 'img': '7.jpg', 'developer': '开发:卡普空', 'publisher': '发行:卡普空', 'date': '发售:2025-02-28', 'platform': '类型:动作游戏', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  8
{'name': '光与影:33号远征队', 'img': '8.jpg', 'developer': '开发:Sandfall Interactive', 'publisher': '发行:Kepler Interactive', 'date': '发售:2025-04-24', 'platform': '类型:角色扮演', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  9
{'name': '真三国无双:起源', 'img': '9.jpg', 'developer': '开发:KOEI TECMO GAMES CO., LTD.', 'publisher': '发行:KOEI TECMO GAMES CO., LTD.', 'date': '发售:2025-01-17', 'platform': '类型:动作游戏', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  10
{'name': '沙丘:觉醒', 'img': '10.jpg', 'developer': '开发:Funcom', 'publisher': '发行:Funcom', 'date': '发售:2025-06-10', 'platform': '类型:角色扮演', 'language': '平台:PC'}
--- game item  11
{'name': '符文工房 龙之天地', 'img': '11.jpg', 'developer': '开发:Marvelous Inc.', 'publisher': '发行:XSEED Games, Marvelous USA, Inc., Marvelous', 'date': '发售:2025-06-05', 'platform': '类型:角色扮演', 'language': '平台:PC'}
--- game item  12
{'name': '心之眼', 'img': '12.jpg', 'developer': '开发: Build A Rocket Boy', 'publisher': '发行: IO Interactive A/S', 'date': '发售:2025-06-11', 'platform': '类型:冒险游戏', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  13
{'name': '幻想生活i 转圈圈的龙和偷取时间的少女', 'img': '13.jpg', 'developer': '开发:LEVEL5 Inc.', 'publisher': '发行:LEVEL5 Inc.', 'date': '发售:2025-05-21', 'platform': '类型:角色扮演', 'language': '平台:PC'}
--- game item  14
{'name': '双影奇境', 'img': '14.jpg', 'developer': '开发:Hazelight', 'publisher': '发行:Electronic Arts', 'date': '发售:2025-03-07', 'platform': '类型:动作游戏', 'language': '平台:PC Switch PS5 XboxSeriesX'}
--- game item  15
{'name': '天国:拯救2', 'img': '15.jpg', 'developer': '开发:Warhorse Studios', 'publisher': '发行:Deep Silver', 'date': '发售:2025-02-04', 'platform': '类型:角色扮演', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  16
{'name': '猛将三国', 'img': '16.jpg', 'developer': '开发:NanBei Studio', 'publisher': '发行:NanBei Studio', 'date': '发售:2025-06-17', 'platform': '类型:策略游戏', 'language': '平台:PC'}
--- game item  17
{'name': '美女,请别影响我成仙', 'img': '17.jpg', 'developer': '开发:蒸汽满满工作室', 'publisher': '发行:一相逢互动娱乐', 'date': '发售:2025-06-20', 'platform': '类型:角色扮演', 'language': '平台:PC'}
--- game item  18
{'name': '漫威蜘蛛侠2', 'img': '18.png', 'developer': '开发:Insomniac Games,Nixxes Software', 'publisher': '发行:索尼,PlayStation Publishing LLC', 'date': '发售:2025-01-31', 'platform': '类型:动作游戏', 'language': '平台:PC PS5'}
--- game item  19
{'name': '断箭', 'img': '19.jpg', 'developer': '开发:Steel Balalaika', 'publisher': '发行:Slitherine Ltd.', 'date': '发售:2025-06-20', 'platform': '类型:策略游戏', 'language': '平台:PC'}
--- game item  20
{'name': '解限机', 'img': '20.jpg', 'developer': '开发:Amazing Seasun Games', 'publisher': '发行:Amazing Seasun Games', 'date': '发售:2025-07-02', 'platform': '类型:动作游戏', 'language': '平台:PC XboxSeriesX'}
--- game item  21
{'name': '文明7', 'img': '21.jpg', 'developer': '开发:Firaxis Games', 'publisher': '发行:2K Games', 'date': '发售:2025-02-11', 'platform': '类型:策略游戏', 'language': '平台:PC'}
--- game item  22
{'name': '三角符文', 'img': '22.jpg', 'developer': '开发:tobyfox', 'publisher': '发行:tobyfox', 'date': '发售:2025-06-04', 'platform': '类型:角色扮演', 'language': '平台:PC Switch'}
--- game item  23
{'name': '最后生还者2重制版', 'img': '23.jpg', 'developer': '开发:Naughty Dog,Iron Galaxy Studios,Nixxes Software', 'publisher': '发行:PlayStation Publishing LLC', 'date': '发售:2025-04-04', 'platform': '类型:动作游戏', 'language': '平台:PC PS5'}
--- game item  24
{'name': '最终幻想7:重生', 'img': '24.jpg', 'developer': '开发:史克威尔艾尼克斯', 'publisher': '发行:史克威尔艾尼克斯', 'date': '发售:2025-01-23', 'platform': '类型:角色扮演', 'language': '平台:PC PS5'}
--- game item  25
{'name': '开球!REMATCH', 'img': '25.jpg', 'developer': '开发:Sloclap', 'publisher': '发行:Sloclap,Kepler Interactive', 'date': '发售:2025-06-19', 'platform': '类型:体育运动', 'language': '平台:PC'}
--- game item  26
{'name': '英雄立志传:三国志', 'img': '26.jpg', 'developer': '开发:Free Wing', 'publisher': '发行:Free Wing', 'date': '发售:2025-03-26', 'platform': '类型:角色扮演', 'language': '平台:PC'}
--- game item  27
{'name': '马里奥赛车:世界', 'img': '27.png', 'developer': '开发:任天堂', 'publisher': '发行:任天堂', 'date': '发售:2025-06-05', 'platform': '类型:赛车游戏', 'language': '平台:Switch'}
--- game item  28
{'name': '上古卷轴4:湮灭重制版', 'img': '28.jpg', 'developer': '开发:Bethesda Softworks', 'publisher': '发行:Bethesda Softworks', 'date': '发售:2025-04-22', 'platform': '类型:角色扮演', 'language': '平台:PC PS5 XboxSeriesX'}
--- game item  29
{'name': '毁灭战士:黑暗时代', 'img': '29.jpg', 'developer': '开发:id Software ', 'publisher': '发行:Bethesda Softworks / Ubi Soft Entertainment', 'date': '发售:2025-05-15', 'platform': '类型:射击游戏', 'language': '平台:PC'}
--- game item  30
{'name': '鬼武者2复刻版', 'img': '30.jpg', 'developer': '开发:CAPCOM Co., Ltd.', 'publisher': '发行:CAPCOM Co., Ltd.', 'date': '发售:2025-05-23', 'platform': '类型:动作游戏', 'language': '平台:PC Switch PS4 XBOXONE'}
fetch game data finished, total count:  30

游戏封面下载图:
请添加图片描述

http://www.lryc.cn/news/580069.html

相关文章:

  • Android发展历程
  • 面试版-前端开发核心知识
  • Oracle如何使用序列 Oracle序列使用教程
  • Java 大视界 -- Java 大数据实战:智能安防入侵检测的特征工程与模型融合全解析
  • 硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
  • Java教程——线程池和future
  • Spring Boot 应用启动时,端口 8080 已被其他进程占用,怎么办
  • 批量PDF转换工具,一键转换Word Excel
  • Jenkins 介绍
  • 后端密码加密:守护用户数据的钢铁长城
  • [尚庭公寓]06-Redis快速入门
  • 通过 Ansys Discovery CFD 仿真探索电池冷板概念
  • Excel 如何进行多条件查找或求和?
  • WPF 右键菜单 MenuItem 绑定图片时只显示最后一个 Icon
  • 深度分析:Microsoft .NET Framework System.Random 的 C++ 复刻实现
  • c# 使用GADL: Can‘t load requested DLL错误处理
  • PixiJS教程(004):点击事件交互
  • gic 中断触发类型
  • Python 中线程和进程在实际项目使用中的区别和联系
  • FastAPI 小白教程:从入门级到实战(源码教程)
  • 基于Docker构建OrangePi5 SDK环境
  • 使用mindie:2.0.RC2-800I-A2-py311-openeuler24.03-lts制作一个通用的模型推理性能测试的镜像
  • Windows 10/11 PC平台关闭禁用系统自动上传相关隐私数据手册
  • TDengine STMT2 API 使用指南
  • HarmonyOS-ArkUI 手势系列4--多层级手势
  • Spring Boot 中常用的工具类库及其使用示例(完整版)
  • 洛谷P1941 [NOIP 2014 提高组] 飞扬的小鸟
  • 行阶梯形矩阵和行最简形矩阵的区别
  • 【WRFDA教程第十期】混合数据同化(Hybrid Data Assimilation)
  • 【C++复习1】基础篇