微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Grabant Grabant使用方法 Go 语言开发的爬虫框架

程序名称:Grabant Grabant使用方法

授权协议: GPL

操作系统: 跨平台

开发语言: Google Go

Grabant Grabant使用方法 介绍

Grabant

Grabant是一个用go语言开发,用javascript语法书写规则的爬虫框架 规则开发和神箭手的爬虫规则类似,开发的目的是兼容大部分神箭手已有的规则

一些相关解释及说明如下:

举个栗子: 如下是一个简易的爬豆瓣电影评分的规则

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

定义一个内容页中抽取数据的抽取项,包括以下内容

  1. name

抽取项的名称

  1. selector

抽取项的匹配规则,可以是正则表达式或者Xpath

  1. selectortype

定义抽取区的类型,正则为SelectorType.Regex, XPath为SelectorType.XPath,如果不设置认为XPath

  1. required

bool类型,如果为true,则此项必须存在才爬取此数据

使用方法

grabant -rule /路径/规则文件

go get github.com/robertkrimen/otto

go get github.com/bitly/go-simplejson

go build

此版本是一个原型版本,目前还有很多判断不严密的可能引起crash的问题;

和神箭手不同之出目前有两个,一是configs项区分大小写,需要全为小写,二fields中selector只支持字符正则;

现在此版本还未实现多个对象及回调方法,只支持最简单的json规则.

Grabant Grabant使用方法 官网

https://github.com/oserz/grabant

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐