就叫Spyfari吧!|数据爬取及可视化系列
这是《数据爬取及可视化系列》的第四篇文章。
前3篇文章,可以点击查阅:
玩了一个月的electron,倒腾了几稿原型+demo开发,不断的推翻自己,最终,我整了一款桌面APP:
Spyfari
用javascrip编写爬虫规则,
可视化的爬虫软件。
我拿它,对著名的p站爬取了一些数据,
在这里我们先回顾下爬虫爬取数据的步骤:
1、通过浏览器查看网站结构,提取出需要获取数据所在的标签,这里跟各种element的节点打交道,需要解释网页标签,用到类选择、id选择、父节点、子节点、正则表达式等等。如果是用python有相应的库,比如BeautifulSoup;
2、处理自动登录,验证码等。
3、获取到数据,或者url,数据存入本地或者数据库
4、根据url再次爬取其他数据,或者根据url下载文件(包括图片、视频、文本、网页等等)。
大致是这么个过程。
有2个事情比较头疼:
1、注册登录账号才能访问
2、各种验证码
登录的话获取登录后的cookie,以后每次爬取的时候,模拟即可。
但是验证码的话,如果碰到变态的验证码,就哭吧。。。
像下面这种:
反正我是没办法攻破。。
不过用上Spyfari,人工点击下,这是很容易的事。
下次再登录,登录状态已经保存了,哈。
除非每一步都要验证码,这种情况不太可能发生吧,毕竟牺牲了用户体验哈。
这就是可视化的优点,各种网站都可以爬取。
我今天先把p站的各个排行榜上的信息爬下来了,还下了图片~
喜欢二次元的朋友应该会喜欢看吧~~
p站的一些排行榜,我都保存为一个个的json文件了,每天都更新排名,看来可以定时去爬取了。
上面那个pixivRank.js是爬取的代码,我会打包进spyfari里的,作为例子。
初次接触可以直接在spyfari里打开,运行下,体验下爬取数据的乐趣。
下面是我爬取的数据存放的格式:
主要爬取了名次、作者、图片url、还有投稿日期;
这个页面是异步加载的,需要不断的滑动到页面最底端才能获取得到数据,但是对于spyfari来说,这个还算是很容易的,毕竟是可视化的爬虫工具,哈,可以做到完全模拟人工操作,过程还是可见的。
其中,投稿日期是异步获取的,需要模拟鼠标点击,然后获取数据。
Spyfari处理异步加载的内容很容易。
这是今天修完Spyfari的一些bug之后,测试代码下载的图片。
下面看看工作页面吧~
最上面一栏是:
定时任务、云端代码共享、操作指引、关闭spyfari。
都还没有进一步开发,待我下礼拜继续完善。
接下来是:
1、需要爬取数据的网址控制,调用的是我精简的chrome浏览器,毕竟爬取数据第一步是分析网页结构啊,要方便的调试代码,还要方便定位标签。
2、编写爬取代码的地方,我集成了一个编辑器。简单好用,在右侧浏览器调试好代码,直接拷过来,保存在本地或者打开本地已有的爬取代码。
代码编写完后,直接点击运行按钮。
愉快的工作起来了,右边还可以实时看到运行的情况,包括一些模拟登录啊,模拟鼠标点击、滑动动作啊~一目了然。
3、是一些爬取的结果输出,还有log的输出,我整合了一些api,方便使用。
如果有下载动作,比如下载图片,也会自动得打印出来。后续会再完善进度提示的功能。
下面这张图是下载的信息输出:
最后,
Spyfari
第一个实验版本安装包已准备好,暂时是mac版。
设计+科技=
自在园O设计Mix科技实验室。