toutiao/search/search.go
huangsimin 19ecf60834 12
2019-01-04 17:55:32 +08:00

72 lines
1.4 KiB
Go

package main
import (
"log"
"github.com/Pallinder/go-randomdata"
"474420502.top/eson/gjson"
crontab "474420502.top/eson/crontabex"
"474420502.top/eson/imitater"
"474420502.top/test/logdb"
)
func main() {
imitater.Register("toutiao", &TaskEx{})
person := imitater.NewPerson()
person.Config("task.yaml")
person.Execute()
}
// TaskEx 任务相关类
type TaskEx struct {
imitater.Task
db *logdb.LogDB
}
// Init 初始化函数
func (te *TaskEx) Init() {
te.db = logdb.New("../logdb.yaml")
}
// Execute 执行过程的方法
func (te *TaskEx) Execute(glocal map[string]interface{}) imitater.ITask {
wf := te.Workflow(true)
kw := randomdata.StringSample("手游", "游戏推荐", "赚钱游戏", "武侠游戏", "战略游戏", "网游", "游戏", "单机游戏")
wf.GetQuery().Set("keyword", kw)
log.Println(kw)
resp, err := wf.Execute()
if err != nil {
log.Println(err)
return te
}
var adDataList []string
if gjson.Valid(resp.Content()) {
P := gjson.Parse(resp.Content())
data := P.Get(`data`)
if data.Exists() {
adData := data.Get(`#[label = "广告"]#`)
if adData.Exists() {
for _, result := range adData.Array() {
adDataList = append(adDataList, result.String())
}
}
}
} else {
log.Println("be careful:", resp.Content())
}
if imitater.ADDataSave(te, te.db, adDataList) {
te.GetCrontab().SetStatus(crontab.SExecuteOK, true)
} else {
te.GetCrontab().SetStatus(crontab.SExecuteOK, false)
}
return te
}