可视化爬虫SPY | 01

今天把我去年开发等可视化爬虫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数据库;

等内容介绍完整。

原文发布于微信公众号 - 科技Mix设计Lab(Design-AI-Lab)

原文发表时间:2017-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏lonelydawn的前端猿区

基于java swing的设备管理系统

一.系统介绍 一个简易的设备管理系统,包含了管理员登录注册、设备录入、设备状态管理功能,具体状态有购买时、正在运行、正在修理和已报废。 二.开发环境 开发环境:...

3207
来自专栏前端小作坊

加载第三方JS的各种姿势

如果你的网站上面有很多第三方JS代码,那么“下载速度的不可控”很有可能导致你的网站会被拖慢。因为JS在执行的时候会影响到页面的DOM和样式等情况。浏览器在解析渲...

3941
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(九):初识后台管理

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

3473
来自专栏前端小栈

利用Hexo+coding搭建博客,优化github博客打开速度

上次用hexo和github上搭建博客后,用了几天发现博客搭建在github上有一定的局限:

1752
来自专栏前端杂货铺

node中创建服务进程

背景 在node工程部署中,常常涉及到三方:本地客户端、跳板机和服务器(集群)。在通过git触发gitlab hook脚本后,需要在跳板机中执行相应的ssh命令...

3186
来自专栏北京马哥教育

Python爬虫基础知识:urllib2使用初阶

糖豆贴心提醒,本文阅读时间8分钟 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。 类似于使用程序模拟IE浏览器的功能,把UR...

3547
来自专栏coding

Linux笔记3

1263
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第十九天 Linux学习【悟空教程】

UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UNIX有免费版的,例如:NetBSD等类似UNIX版本。

1714
来自专栏游戏杂谈

文件(夹)对比利器--WinMerge

有两个工程,繁体版本、简体版本,版本号不一样,如果需要同步里面的代码就需要用到第三方工具了。IDE中自带的svn功能较弱,还好有winMerge弥补了它的缺陷,...

1542
来自专栏前端正义联盟

gitflow 开发流程学习(第一部分)

3427

扫码关注云+社区

领取腾讯云代金券