1. 首页
  2. Python

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

“u003Cdivu003Eu003Cpu003E最近迷上了王者荣耀,但是水平太菜了,每次开局还得先看看技能介绍什么的,为了不坑大伙,干脆抓一份资料回来,放自己电脑上随用随查吧!!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15214456521179899906309″ img_width=”292″ img_height=”295″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E工具:pycharm、python3.6、requests 库、scrapy 库和 selenium、 PhantomJS 库u003Cu002Fpu003Eu003Cpu003E目标 url 获取:http:u002Fu002Fpvp.qq.comu002Fweb201605u002Fherolist.shtml 里有所有英雄的列表,抓包,并写入函数u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F152144569771426e5d8a0d0″ img_width=”761″ img_height=”172″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E分析网页,先写 items.py,主要内容如下:u003Cbru003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F152144569001260b8e91597″ img_width=”460″ img_height=”326″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003EPipelines.py 内容(最终文件为 json 格式):u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15214457072879d8d2e4687″ img_width=”675″ img_height=”306″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E记得在 settings.py 里面将 ITEM_PIPELINES 打开,并设置 ROBOTSTXT_OBEY 为False(不打开不能保存文件,设置 robotstxt 是跳过网站 ROBOT 协议)u003Cu002Fpu003Eu003Cpu003E然后就是 spiders 文件下新建一个 hero.py,用来写我们的爬虫,抓取的内容较多,都已经在网页存在,比较简单,注意写入 items 时的格式就好u003Cu002Fpu003Eu003Cpu003E本次爬虫还有需要改进的地方u003Cu002Fpu003Eu003Cul class=” list-paddingleft-2″u003Eu003Cliu003Eu003Cpu003E 技能加点建议部分,是在渲染后写入的,没有能在网页源码中找到相应部分,没办法,用了 selenium+PhantomJS的方式抓取,希望有大神可以帮忙改进!u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cpu003E英雄故事部分,有的英雄详情页的英雄故事所在结构不同,导致出错不得已加了 try方法u003Cu002Fpu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E需要注意的还有一个地方,每一个英雄详情页面,召唤师技能、装备、铭文是单独一个 json字典,在网页中存在相应的 ID,先抓包然后在网页内匹配 id即可,而职业也是有相应的 id字段,先写到上面,后面调用,如下:u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521445758454a58df84fa7″ img_width=”710″ img_height=”138″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E其他都很好匹配的,就一层抓取,直接上爬虫代码,因为截长图,效果不好,就分部分截取了,有兴趣的小伙伴可以找我要源码的u003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F152144577844796b2075be8″ img_width=”290″ img_height=”73″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003E首先是导入模块部分u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15214457911556ee1ce4740″ img_width=”335″ img_height=”163″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E爬虫入口,有 77个英雄,所以直接写入循环获取每一个英雄的详情页u003Cbru003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1521445801904134ea599b9″ img_width=”794″ img_height=”232″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E开始写解析函数,先将需要的字典抓包获取u003Cbru003Eu003Cu002Fpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1521445829416dfa0a8424d” img_width=”751″ img_height=”197″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cpu003E实例化 items,开始写入前几个字段u003Cbru003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521445840175ec50254f20″ img_width=”998″ img_height=”256″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003E技能信息和铭文建议部分u003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15214458557198c09ecd40d” img_width=”781″ img_height=”437″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E技能加点建议、召唤师技能建议部分,注意这里使用了模拟浏览器的方式获取u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15214460440780c5e07c4b5″ img_width=”751″ img_height=”300″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E英雄关系和装备推荐部分,其中英雄关系部分其实是一段话,手工分开u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15214460547440498c983b4″ img_width=”1116″ img_height=”412″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E最后是英雄故事部分u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15214460671944916b66f5e” img_width=”772″ img_height=”265″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E运行结束后,生成的文件和解析后内容片段u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F152144608608467ad8eb651″ img_width=”222″ img_height=”174″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521446086247905848eef7″ img_width=”977″ img_height=”540″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15214460864919194e12094″ img_width=”813″ img_height=”558″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F152144608653356046a211d” img_width=”865″ img_height=”571″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E到这里就完成了,有兴趣或者想要源码的小伙伴可以私信我:资料,获取联系方式,咱们一起学习进步哦!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521446371899029bc4cfbb” img_width=”420″ img_height=”272″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E不过在这之前,我们先来一把吧!!保证不坑~!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1521446257834ef9b6dfd14″ img_width=”1280″ img_height=”854″ alt=”用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息” inline=”0″u003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:用 python 爬虫框架 scrapy 抓取王者荣耀官网所有英雄信息

主题测试文章,只做测试使用。发布者:战鹰,转转请注明出处:http://www.cxybcw.com/13334.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code