分享

可视化爬虫SPY | 01

 Mixlab交叉学科 2020-11-07

今天把我去年开发等可视化爬虫SPY整理了下,虽然它还在demo阶段,但我已经在经常使用来爬取一些数据了,用的过程还是比较方便的,区别于其他纯代码的爬虫工具。

SPY用的数据库是mongod,我用的数据库管理工具是

mongobooster

本篇把SPY的基本使用流程介绍一下。

1、打开程序,界面是下图这样的:

右上图,我把目前的主要功能罗列了下,可以对照下;

一个爬取数据的过程,我分解为:

step1:

浏览目标网站,提取目标网站的网页结构

step2:  

编写代码,这边用的是纯javascript,我封装了些简单的接口

step3:  

输出爬取结果

2、接下来,我以百度的首页为例子,介绍整个使用流程,地址栏输入百度网址,然后点击刷新(下图红圈)(或回车)

3、打开后,界面如下图,会看到熟悉的chrome浏览器界面,默认应该是开启了chrome的调试工具(见下图)

如果没有自动开启chrome的调试栏,可以,点击菜单栏--view--toggle developer tools,开启(下图)。

4、用chrome的inspect功能。如果你学习过爬虫或者写过前端,那你应该很熟悉inspect功能,如果不熟悉可以查找chrome开发者工具的相关资料进行学习。

5、这边我要爬取首页的所有文章标题,发现都存在于一个

class="s-text-content"的div的h2里面


6、切换到console栏,编写简单的js代码。

var doms=document.querySelectorAll('.s-text-content');

doms.forEach(function(dom,index){

var title=dom.innerText;

console.log(title);

});

回车,结果如下:

由于百度首页是异步加载的,这边我们把页面滑动到最下面,然后再运行下代码。

对于异步加载的页面,可以用spy的定时器功能。这个等回头我再补一篇教程。

7、把代码复制到step2里的输入框,然后运行。

var res=[];

var doms=document.querySelectorAll('.s-text-content');

doms.forEach(function(dom,index){

var title=dom.innerText;

res.push(title)

});

spy.getResult(res)

这边调用了我封装的接口,spy.getResult(),把爬取的结果保存为json文件。

默认调用接口后会自动保存至Downloads路径的Spyfari+‘数字’路径。

如下图

可以点击下保存按钮,另存为其他路径。

-----------------------

一个完整的爬取流程就是这样。

SPY的下载链接: 

https://pan.baidu.com/s/1kUXk1BT

密码: bxaq

暂时只有MAC版本

使用过程有任何问题请跟本号联系。

后续我会把

定时任务;

自动下载图片/文件;

接入mongod数据库;

等内容介绍完整。


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多