##a visual spider by go
#简介
####visual_spider_go是使用golang编写的可视化爬虫框架,目标是尽可能降低爬虫开发周期,对垂直领域爬虫进行了高度的抽象,用户只需要简单配置不需要编写代码就能完成数据爬取,所以与其说是爬虫框架不如说是一个完整的数据爬取软件产品,特别适合没有编程能力,但掌握基本的计算机操作知识的用户使用。正如本项目logo所示,“小孩子”都可以爬数据了
####本项目基于go_spider,结合了ip代理等全部反反爬模块,拥有可视化编辑维护爬取规则功能,系统自带golang原生的任务定时调度模块,可以自己管理定时执行爬虫任务,同时支持动态修改header,用户登录等功能。
##亮点
####1.web可视化界面,不需要编码,只需要添加配置信息,即操作简单又有一定灵活性
####2.结构优化,解耦下载与解析,原生队列降低序列化开销
####3.配备大量反屏蔽措施,可伪装请求头信息,随机访问延时,IP代理及其回退算法
####4.结合语言特点,高并发能力强,效率极高
####5.自带任务调度系统,可在web端定时发布任务,监视任务运行
#安装
##go get github.com/ZuochaoLee/visual_spider_go
##依赖
###go get github.com/ZuochaoLee/cron
###go get github.com/astaxie/beego
###go get github.com/PuerkitoBio/goquery
###go get github.com/bitly/go-simplejson
###o get golang.org/x/net/html/charset
#使用说明 ##系统简介 系统是基于golang开发的可视化爬虫系统,目标是以最小的代价最高的运行效率完成垂直领域的爬虫任务。 ##系统架构 系统由爬虫部分,任务调度部分,数据交互部分组成。 爬虫部分是系统的核心,由下载器,任务队列,页面解析器,数据存储通道四部分组成,其中页面解析器和数据存储通道可以由用户配置使用,也可以进行二次开发来满足具体任务需求,据大多数情况下,系统的模版均可覆盖,用户只需配置一些参数即可使用,无需编写代码。 任务调度部分是用golang模仿cron实现的,支持cron语法,可以在系统内很容易实现定时任务调度 ##操作说明 ###添加任务 添加任务是配置抓取中用到的关键信息,根据对垂直领域爬虫的抽象,分为六个部分
1、任务信息:包括 任务名称,执行时间的cron表达式,执行线程数,任务的描述等
2、存储数据库信息:包括 数据库类型(设计支持mysql,mongodb,redis,file,console等)主机名,端口号,库名,用户名,密码等信息
3、下载器配置信息:包括 返回类型,请求方法,入口URL,cookie设置,hearder设置,使用代理等
4、翻页规则:支持最多四层翻页变量设置,最内层必须为页码(格式为:1 1 100 即 起始页 步长终止页),外层为自定义列表(列表项用空格隔开即可)
5、种子解析规则:从信息列表页获取详情页链接种子的相关规则,包括css选择器唯一规则,选取属性类型,以及如果是相对路径需要的前缀URL等
6、页面规则:从详情页解析相关信息规则,包括词项名称,css选择器唯一规则,选取属性类型,可添加多个
###任务启停 在任务列表中可以操纵启停任务,任务启动不是及时运行,是把任务添加到了定时任务系统中,同样,停止任务只是从定时任务系统中删除了任务,不是及时停止任务。由于系统效率超群,大多数任务都会在十分钟以内,及时停止不是那么必须 ###任务修改 如果遇到被爬网站页面规则改版,可以在任务列表点击任务详情修改任务配置,具体操作同任务添加