3 Star 1 Fork 0

tym_hmm / crawler

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
readme.md

爬虫定时任务库

获取组件库

go get -u gitee.com/tym_hmm/crawler

执行结果图

img

使用方式

1.运行服务

kelleyCrawler.CrawlerInstance().Run()

2.添加任务

#定时执行(每间隔多少时间执行)
infoNode := kelleyCrawler.NewInfoNode(kelleyCrawler.HTTP_METHOD_GET, "爪取地址", &LianYouZiXunRule{})
infoNode.SetExecType(kelleyCrawler.EXEC_TYPE_INTVAL)//设置为间隔时间执行
infoNode.SetIntervalTime(20000)//间隔执行时间(毫秒)
infoNode.SetStageInterValTime(2000)//每阶段停留获取时间
_ = kelleyCrawler.CrawlerInstance().AddJob(infoNode)//添加任务

#每天执行
infoNode := kelleyCrawler.NewInfoNode(kelleyCrawler.HTTP_METHOD_GET, "爪取的地址", &LianYouZiXunRule2{})
infoNode.SetExecType(kelleyCrawler.EXEC_TYPE_DAY)//设置为每天时间, 设置后服务自定义时间执行(当天不执行)
infoNode.SetHour(14)//每天什么小时爪取 24小时制
infoNode.SetStageInterValTime(2000)//每阶段停留获取时间
_ = kelleyCrawler.CrawlerInstance().AddJob(infoNode)

其它接口说明

接口名称 参数说明 描述
SetCookie( cookie []*http.Cookie ) cookie []*http.Cookie : golang http官方cookie参数 设置第一个阶段cookie
SetDataParam(dataParam map[string]string) dataParam map[string]string : 设置请求参数| 设置第一个阶段参数
SetHeader(header map[string]string) header map[string]string : 设置请求头 设置第一个阶段请求头
SetTimeOut( timeOut int ) timeOut int : 设置请求超时时间(秒),不设置默认为5秒 设置http请求超时时间

3.任务回调

任务回调需实现 Api.go 下的 CrawlerItemRules 接口

type LianYouZiXunRule2 struct {
}
func (l *LianYouZiXunRule2) SuccessHandle(context *kelleyCrawler.Context, stage int32, content string) bool {
	fmt.Println("LianYouZiXunRule2", "SuccessHandle")
	fmt.Println("context",context)
	fmt.Println("stage", stage)
	return true
}
func (l *LianYouZiXunRule2) ErrorHandle(currentPageUrl string, stage int32, tryTime int32,code int, err error) {
	fmt.Println("LianYouZiXunRule2", "ErrorHandle")
	fmt.Println("currentPageUrl", currentPageUrl)
	fmt.Println("code", code)
	fmt.Println("stage", stage)
	fmt.Println("tryTime", tryTime)
}

回调说明:

1.成功回调

#成功爪取网页回调
@param context *kelleyCrawler.Context 当前任务上下文,当返回值为true时需修改 context中对应的参数,执行下个阶段处理
@param stage int32 当前执行的阶段, 如第一次执行时为第一个阶段, 当返回值为true时, 会进行第二阶段爪取
@param content string 返回爪取的内容
@return bool true: 进行下一阶段处理, false:停止执行当前任务(但不停止定时器)
SuccessHandle(context *kelleyCrawler.Context, stage int32, content string) bool

2.错误回调

#错误响应回调, 任务底层出现错误时会根据SetStageInterValTime() 进行阶段时间重试5次,5次后未成功则触法错误回调
ErrorHandle(currentPageUrl string, stage int32, tryTime int32, code int, err error)

错误说明

code 说明
30001 任务请求地址错误
30002 爪取任务地址已存在
30003 爪取任务不存在(主要用于动态删除)
30100 请求失败 具体见错误内容
38101 任务标识生成错误

使用组件库

  1. httpclient组件=>
go get -u gitee.com/tym_hmm/go-httpclient

Repository Comments ( 0 )

Sign in to post a comment

About

爬虫任务 expand collapse
Go
Cancel

Releases (7)

All

Contributors

All

Activities

Load More
can not load any more
Go
1
https://gitee.com/tym_hmm/crawler.git
git@gitee.com:tym_hmm/crawler.git
tym_hmm
crawler
crawler
master

Search

182229 41614e54 1850385 182230 7885ed45 1850385