- 授权协议: GPL
- 开发语言: Google Go JavaScript
- 操作系统: 跨平台
- 软件首页: https://github.com/oserz/grabant
- 软件文档: https://oser.space/categories/grabant/
- 官方下载: https://github.com/oserz/grabant
软件介绍
Grabant
go语言爬虫框架,自定义javascript规则
Grabant是一个用go语言开发,用javascript语法书写规则的爬虫框架 规则开发和神箭手的爬虫规则类似,开发的目的是兼容大部分神箭手已有的规则
说明
一些相关解释及说明如下:
扫描页是直接配置的一级页面,这个页面扫描的结果是抓取列表页;
列表页是扫描后的二级页面,这个页面是为了抓取内容页;
内容页才是真正匹配我们需要内容的规则的页面,内容页会匹配我们需要的内容并输出;
每次扫描页面,会抽取页面的链接放入队列进行规则匹配,列表页规则如果为空则列表页抽取链接全放入列表队列,同理内容页,从内容页中抽取的数据是以xpath或者正则匹配的规则
举个栗子: 如下是一个简易的爬豆瓣电影评分的规则
var configs = {
domains: ["movie.douban.com"],
interval: 3000,
scanurls: ["https://movie.douban.com/cinema/nowplaying/shenzhen/"],
helperurlregexes: ["https://movie\\.douban\\.com/subject/\\d+/\\?from=playing_poster"],
fields: [
{
name: "film Name",
selector: "//*[@id=\"content\"]/h1/span[1]",
required: true
},
{
name: "Rank",
selector: "//*[@id=\"interest_sectl\"]/div[1]/div[2]/strong"
required: true
}
]
};
// 使用以上配置创建一个爬虫对象
var crawler = new Crawler(configs);
// 启动该爬虫
crawler.start();configs是一个json配置对应的字段意义如下:
domains
定义应用爬取哪些域名下的网页
interval
爬取页面需要的延时,毫秒
scanUrls
定义入口页url, 从入口页url开始爬取数据
contenturlregexes
设置内容页url的正则表达式
helperurlregexes
设置列表页url的正则表达式
field
定义一个从内容页中抽取数据的抽取项,包括以下内容
name
抽取项的名称
selector
抽取项的匹配规则,可以是正则表达式或者Xpath
selectortype
定义抽取区的类型,正则为SelectorType.Regex, XPath为SelectorType.XPath,如果不设置默认为XPath
required
bool类型,如果为true,则此项必须存在才爬取此数据
使用方法
grabant -rule /路径/规则文件
编译
go get github.com/robertkrimen/otto go get github.com/bitly/go-simplejson go build
v0.01
此版本是一个原型版本,目前还有很多判断不严密的可能引起crash的问题;
和神箭手不同之出目前有两个,一是configs项区分大小写,需要全为小写,二fields中selector只支持字符正则;
现在此版本还未实现多个对象及回调方法,只支持最简单的json规则.
计算机程序设计艺术
Donald E.Knuth / 黄林鹏 / 机械工业出版社 / 2010-8 / 69.00元
《计算机程序设计艺术(第4卷·第0册):组合算法与布尔函数概论(双语版)》是《计算机程序设计艺术,第4卷:组合算法》的第0册。《计算机程序设计艺术(第4卷·第0册):组合算法与布尔函数概论(双语版)》介绍了组合搜索历史和演化,涉及组合搜索技术的理论和实践应用,探究了布尔函数相关的所有重要问题,考察了如何最有效地计算一个布尔函数的值的技术。本册是《计算机程序设计艺术的》第7章,即组合搜索一长篇宏论的......一起来看看 《计算机程序设计艺术》 这本书的介绍吧!
MD5 加密
MD5 加密工具
RGB HSV 转换
RGB HSV 互转工具
