专栏首页日常学pythonPython爬取炉石传说原画及卡牌抓取

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

玩过这款游戏的点个赞?

本文分享自微信公众号 - 日常学python(daily_learn)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 Python 分析全国所有必胜客餐厅

    在之前的一篇文章中,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息。虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中“躺尸”。不曾记得,自己已经第 n 次这么...

    sergiojune
  • 如果不懂这些搜索技巧,就别说你懂 PornHub,不,是……

    如果你不懂这些搜索技巧,就别说你懂 PornHub,不,是……是什么呢?是 GitHub 啊!我们是程序员的公众号!

    sergiojune
  • 这次给大家带来复杂点的ajax请求该如何破?

    公众号由于私人原因差不多一个月没有更新了,首先还是得感谢没有你们,没有取关我,很开心。其次我会在以下的两个月时间为大家输出高质量的文章,让你们能学到东西的同时,...

    sergiojune
  • 知名Web域名注册商披露数据泄露事件

    又一次大规模的数据泄露事件发生。这一次的主角是一家知名的领头网络技术公司及其两家子公司,全球数百万客户从这里购买了网站的域名。

    FB客服
  • Nginx配置SSL实现https请求并重定向http请求的实现

    因为我的网站是部署在腾讯云上的,腾讯云同时也提供了免费的SSL证书(有效期1年)。

    Bug生活2048
  • 21张知识卡,告诉你推荐系统的核心技术

    推荐系统目前已经深入到了互联网的各类产品中。不管是到电子商务网站购物,还是到新闻阅读网站获取信息,甚至是在出行的时候希望听到不同的音乐,不同种类的推荐系统都在我...

    IT派
  • Ubuntu 16.04/18.04 安装和使用QQ和微信最简洁的方式

    2018 ROS Melodic的迷失与救赎::https://blog.csdn.net/column/details/28058.html

    zhangrelay
  • Java原子操作类,你知道多少?

    由于synchronized是采用的是悲观锁策略,并不是特别高效的一种解决方案。 实际上,在J.U.C下的atomic包提供了一系列的操作简单,性能高效,并能保...

    李红
  • 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

    一、反向代理:Web服务器的“经纪人” 1.1 反向代理初印象   反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求...

    小小科
  • 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

    一、反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然...

    小小科

扫码关注云+社区

领取腾讯云代金券