Fork me on GitHub

爬虫插件 Web Scraper 初步学习

在做毕设赛程数据的时候,遇到了一个很头疼的问题:拿不到赛局的具体数据。我最开始特别想尝试一下英雄联盟赛事,毕竟喜欢打游戏,对这方面的数据也就比其他方面更喜欢,更愿意去尝试获取。

很明显,我是在找不到免费接口的情况下迫不得已自己去爬取数据的。数据服务商肯定是有的,析乐数据和野子科技都是做电竞数据分析的,但大多与俱乐部或官方合作,且不说会不会与个人合作,费用也不会低,凭这两点就已经排除掉使用的可能了。所以,只剩下自己去爬取数据的可能。但我只会一点点Python,离爬取数据还有些差距,所以就只能靠爬虫插件来爬取数据了。

话说到这里,就明白了吧,这篇只是针对像我这样完全不会爬取数据的小白的。

介绍及安装

官方介绍:Web Scraper是一款免费的Chrome扩展程序,主要通过建立sitemap来导航站点并提取数据。使用不同的类型选择器,就可以提取多种类型的数据,包括文本、表格、图像、链接等。

Web Scraper主打的口号是不需代码便可爬取95%网站的数据。不需代码不假,但一般因为爬取的数据项比较多,所以还是要花一点功夫建一下字段表的,不过比起代码来说简单就是了。

安装地址:谷歌商店 Web Scraper

使用

打开浏览器控制台就可以找到Web Scraper了,如下图:

打开以后,就可以准备开始抓取数据了。先放上我要爬取的数据源网址。

季中总决赛 RNG VS KZ

创建 sitemap

点击创建新的sitemap,设定新的sitemap名称和网址。如果爬取多个网址,且爬取的页面规格基本差不多的话,可以用范围定义替换数字部分,即可以用[1-100]表示末尾为1到100的网址;如果网址中是零填充,则将零填充添加到范围定义,即[001-100];此外也可以有规律的范围定义,如[0-100:10],表示0-10-20-…-100。因为这里爬取的是总决赛BO5局,页面规格不大一样,所以我就不用范围定义了。

选择元素

Web Scraper提供了多种元素的提取器,文本、链接、图像、表格等等。这里一时间我难以概括所有的元素,待我过几天将各种元素爬取一下再做补充。

在最一开始,要从提取的目标数据表现形式来决定用什么选择器提取数据。如下图:

很明显这是多个表格,Web Scraper也提供了表格选择器。而对于要爬取的上面的网站的数据的表现形式,是由内容形式不尽一样的列表组成的。对于这种情况,使用元素选择器来提取数据。

元素选择器

元素选择器是用于包含多个数据元素的元素的选择器。选择器会将每个选定的元素作为父级元素返回给它的子选择器。元素选择器子选择器只会在元素选择器给它们的元素内提取数据。

选择时,要将包含所有目标数据的内容块选中。这里因为要提取五行内容相同的列表的数据,属于重复爬取,故选中multiple。结束完这些操作,保存返回。如图:

第一步的选择器是作为父元素的,要爬取父元素内的子元素,就要切换到父元素的下一级进行下一步的子元素的内容选取。点击进入后,此时就是对多种子元素的选取了。这里子元素包括有文本和图像,分别选择适合的子元素选择器选中并命名列名就行了。特别注意,这里就不需要再选取Multiple了。如图:

PS:列表性的单个重复元素在选取时,要点击选取目标首项与下一项,这样选择器才能识别出之后的多个元素,达到多次爬取的目的。可以通过点击Element preview来查看原网页中元素的选择是否正确,点击Data preview来预览目标元素的内容获取是否成功。

选取并定义完所有子元素选择器,包括红蓝方队员的头像、名称、KDA、经济、补刀、输出伤害、承伤、选用英雄头像、召唤师技能及装备等,一行共34项数据(数据项太多搞得我很烦)。当然,只是想试验一下的话,定义五六项就可以了。

爬取数据

完成上一步操作后,点击sitemap+sitemap名的那个选项,选中scrape,设置一下请求时长与页面载入延迟时长,点击start scrapering,待弹出新窗口并关闭后,就可以在控制台看到爬取到的数据表了。结果如图:

然后就可以选中Export data as csv导出比赛数据了。之后的处理,就是大家各显神通的时间了。

PS:用Word打开csv会有部分数据显示错误,所以最好用记事本打开查看结果。

总结

个人来看,这个工具还是很方便的,省去了小白学习Python爬虫的时间,无需代码就可以获取到数据。对于我来说,偶尔应个急还是可以的。如果以后真的要做一些需要大量数据的项目,我想我还是去学一下Python爬虫比较好。

-------------本文结束感谢您的阅读-------------