首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬取炉石传说原画及卡牌抓取

作者:丨像我这样的人丨

来自:https://www.jianshu.com/p/e386f549d17a

炉石传说原画链接:http://news.4399.com/gonglue/lscs/kptj/

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

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

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

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

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

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

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

炉石传说卡牌链接:http://cha.17173.com/hs/

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

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

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

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

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

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

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

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

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

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

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

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

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

致敬下玩了好几年的炉石

顺手拼一下女神

完毕!

源码获取地址:https://github.com/sadjjk/Hearth-Stone-Spider

玩过这款游戏的点个赞?

●编号514,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

Web开发

更多推荐《18个技术类微信公众号》

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180922B0R3GX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券