用python爬虫框架scrapy抓取王者荣耀官网所有英雄信息

最近迷上了王者荣耀,但是水平太菜了,每次开局还得先看看技能介绍什么,为了不坑大伙,干脆抓一份资料回来,放自己电脑上随用随查吧!!

工具:pycharm、python3.6、requests库、scrapy库和selenium、 PhantomJS库

目标url获取:http://pvp.qq.com/web201605/herolist.shtml里有所有英雄的列表,抓包,并写入函数

分析网页,先写items.py,主要内容如下:

Pipelines.py内容(最终文件为json格式):

记得在settings.py里面将ITEM_PIPELINES打开,并设置ROBOTSTXT_OBEY False(不打开不能保存文件,设置robotstxt是跳过网站ROBOT协议)

然后就是spiders文件下新建一个hero.py,用来写我们的爬虫,抓取的内容较多,都已经在网页存在,比较简单,注意写入items时的格式就好

本次爬虫还有需要改进的地方

技能加点建议部分,是在渲染后写入的,没有能在网页源码中找到相应部分,没办法,用了selenium+PhantomJS的方式抓取,希望有大神可以帮忙改进!

英雄故事部分,有的英雄详情页的英雄故事所在结构不同,导致出错不得已加了try方法

需要注意的还有一个地方,每一个英雄详情页面,召唤师技能、装备、铭文是单独一个json字典,在网页中存在相应的ID,先抓包然后在网页内匹配id即可,而职业也是有相应的id字段,先写到上面,后面调用,如下:

其他都很好匹配的,就一层抓取,直接上爬虫代码,因为截长图,效果不好,就分部分截取了,有兴趣的小伙伴可以找我要源码的

首先是导入模块部分

爬虫入口,有77个英雄,所以直接写入循环获取每一个英雄的详情页

开始写解析函数,先将需要的字典抓包获取

实例化items,开始写入前几个字段

技能信息和铭文建议部分

技能加点建议、召唤师技能建议部分,注意这里使用了模拟浏览器的方式获取

英雄关系和装备推荐部分,其中英雄关系部分其实是一段话,手工分开

最后是英雄故事部分

运行结束后,生成的文件和解析后内容片段

到这里就完成了,有兴趣或者想要源码的小伙伴可以找我,咱们一起学习进步哦!

不过在这之前,先让我们来一把吧~!保证不坑~!

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

扫码关注云+社区

领取腾讯云代金券