Python抓取炉石传说卡牌,做一个女神的拼图游戏

炉石传说原画1

炉石传说原画2

本打算使用Selenium模拟点击获取图片信息 

尝试发现源码中 该按钮并无相应的跳转链接

这不应该啊 没有相应的跳转链接 点击后是如何加载新的图片?

后来浏览整体网站源码后 发现把问题想复杂 根本不需要模拟点击查看更多

网站其实已经加载了所有的卡牌原画 只是之后的原画做了隐藏处理默认不展示  style=display

点击查看更多后 显示原画

那么只需使用requests获取网页源码

用BeautiSoup/正则表达式/pyQuery解析元素 遍历相应img的url 即可下载

Github

教训:爬虫前 不要根据网页所对的操作实施相应的代码爬取 不要有这样的思维定式 首先要做的是先大体浏览分析整个网页的源代码  有的可能直接写在源码或json或js中 无需再加工

炉石传说卡牌链接

炉石传说卡牌

该网站通过下拉右边的滚动条不断加载新的卡牌

与上一个网站不同  上一个网站一次性写入了所有卡牌 只不过做了隐藏处理

该网站是通过js动态加载渲染出的卡牌 直接获取源码 无法得到所有卡牌信息

那么就用selenium模拟下拉滚动条(selenium简直居家必备之神器)

使用selenium执行js脚本 每次执行下拉1000个单位滚动条 执行90次

为什么是90次 测试出来的 大概90次拉到底

注意:这里要增加1~3秒的暂停时间 用于网页渲染

第一次没有设置停留时间 无法获取新的数据  怀疑自己 怀疑人生

经前端/后端好友L君的提示 需增加暂停时间 这样才能获得加载渲染后的数据

browser.page_source便可获得动态加载的所有数据

有了数据 之后就很简单 正则匹配获取相应url下载即可

Github

最后获得了800张原画 1324张卡牌

既然获得了这么多卡牌和原画 不能浪费 利用起来 拼图!

致敬下玩了好几年的炉石

谢谢你!

顺手拼一下女神!我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习” 关注,欢迎大家加入千人交流答疑裙:699+749+852

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏性能与架构

高性能流水线页面技术 BigPipe

网站速度是Facebook的重要目标,2009年,Facebook成功的使网站快了两倍,工程师团队为此做了多项创新,BigPipe就是其中的一个秘密武器 Big...

3485
来自专栏Crossin的编程教室

在BAE上搭建discuz论坛

各位同学,好久不见。假期结束,我们的课程又要继续了。这几天持续高温,让人只想躲在空调房里吃西瓜,你的城市是不是也在火炉上烤着呢?不过我相信,大家学习编程的热情比...

37110
来自专栏流柯技术学院

Atom + activate-power-mode震屏插件Windows7下安装

Atom是Github推出的一个文本编辑器,搜索一下大概是给Web前端用的,最近比较火的是他的一个插件activate-power-mode,可以实现打字屏振效...

1442
来自专栏更流畅、简洁的软件开发方式

【自然框架】之通用权限(七):权限到按钮

      继续,这是第七章了。我已经到了无话可说的地步了。哎,在坚持几章就结束了。第七章到第十章,我打算采用简单说明的方式来做,因为我感觉我这么写好像大家都不...

2379
来自专栏天天P图攻城狮

iOS基础开发实践:iMessage Extension浅析

2442
来自专栏GopherCoder

Django:web框架的学习(3)

1553
来自专栏前端架构与工程

前后端分离和模块化-58到家微信首页重构之路

微信钱包内的58到家全新首页已经上线,感兴趣的同学们可以在微信中打开“我的->钱包->58到家”查看。 58到家全新首页提出重构主要是为了解决以下问题: 每个城...

2428
来自专栏葡萄城控件技术团队

【图解】FlexGrid Explorer 全功能问世

在去年的时候,我们推出了FlexGrid Demo,包含了FlexGrid的常用功能,如分组、滚动、冻结、自定义单元格类型、搜索面板、表格过滤器、树形结构、合并...

1053
来自专栏破晓之歌

谷歌插件整理

适用于Facebook、Google、YouTube、Gmail、Google Docs、Reddit、Twitter等网站的精美深色皮肤

4913
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–应收帐款(157)-16 F.2B利息计算

4.16 F.2B利息计算 计算过期项目的利息 使用需求利率和相应帐户确认设置来配置利息标识 01。 已在客户主记录中设置利息标识 01。 角色:应收会计 会计...

3558

扫码关注云+社区

领取腾讯云代金券