|
@@ -24,9 +24,9 @@ import (
|
|
|
|
|
|
var SpiderHeart sync.Map = sync.Map{} //爬虫心跳
|
|
|
|
|
|
-var Allspiders sync.Map = sync.Map{} //采集列表页爬虫集合
|
|
|
-var Allspiders2 sync.Map = sync.Map{} //采集详情页爬虫集合
|
|
|
-var LoopListPath sync.Map = sync.Map{}
|
|
|
+var Allspiders sync.Map = sync.Map{} //存储正在执行采集列表页任务的爬虫集合
|
|
|
+var Allspiders2 sync.Map = sync.Map{} //存储正在执行采集详情页任务的爬虫集合
|
|
|
+var LoopListPath sync.Map = sync.Map{} //存储爬虫集合
|
|
|
|
|
|
//var ChanDels = map[int]string{}
|
|
|
//var lock sync.Mutex
|
|
@@ -72,31 +72,17 @@ func NoQueueScript() {
|
|
|
if errstr == "" && sp != nil && sp.Code != "nil" { //脚本加载成功
|
|
|
//sp.Index = qu.IntAll(key)
|
|
|
//sp2.Index = qu.IntAll(key)
|
|
|
- if info["createuser"] != "" {
|
|
|
- sp.UserName = info["createuser"]
|
|
|
- }
|
|
|
- if info["createuseremail"] != "" {
|
|
|
- sp.UserEmail = info["createuseremail"]
|
|
|
- }
|
|
|
- sp.MUserName = info["modifyuser"]
|
|
|
- sp.MUserEmail = info["modifyemail"]
|
|
|
Allspiders.Store(sp.Code, sp)
|
|
|
for _, tmp := range *list {
|
|
|
if qu.ObjToString(tmp["code"]) == sp.Code {
|
|
|
sp.UpperLimit = qu.IntAll(tmp["uplimit"])
|
|
|
- //sp2.UpperLimit = qu.IntAll(tmp["uplimit"])
|
|
|
sp.LowerLimit = qu.IntAll(tmp["lowlimit"])
|
|
|
- //sp2.LowerLimit = qu.IntAll(tmp["lowlimit"])
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if util.Config.Modal == 1 { //列表页、三级页分开采集模式
|
|
|
+ if util.Config.Modal == 1 && !util.Config.IsHistoryEvent { //列表页、三级页分开采集模式
|
|
|
sp2, _ := CreateSpider(code, script, true, false)
|
|
|
- sp2.UserName = sp.UserName
|
|
|
- sp2.UserEmail = sp.UserEmail
|
|
|
- sp2.MUserName = sp.MUserName
|
|
|
- sp2.MUserEmail = sp.MUserEmail
|
|
|
sp2.IsMainThread = true //多线程采集时使用
|
|
|
Allspiders2.Store(sp.Code, sp2)
|
|
|
}
|
|
@@ -173,16 +159,12 @@ func QueueUpScriptList() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- logger.Info("Code:", code, "Is Downloading List:", old_is_running, "task num:", sp_old.ListParallelTaskNum)
|
|
|
+ logger.Info("Code:", code, "Is Downloading List:", old_is_running, ",subtask num:", sp_old.ListParallelTaskNum)
|
|
|
if !old_is_running { //判断当前爬虫上轮任务是否执行完成
|
|
|
sp, errstr := CreateSpider(code, script, false, false)
|
|
|
//logger.Info("初始化脚本是否成功:", sp != nil, e.Value)
|
|
|
if errstr == "" && sp != nil && sp.Code != "nil" { //初始化脚本成功
|
|
|
//sp.Index = qu.IntAll(key)
|
|
|
- sp.UserName = info["createuser"]
|
|
|
- sp.UserEmail = info["createuseremail"]
|
|
|
- sp.MUserName = info["modifyuser"]
|
|
|
- sp.MUserEmail = info["modifyemail"]
|
|
|
sp.ListParallelTaskNum = sp_old.ListParallelTaskNum //继承子任务数量
|
|
|
Allspiders.Store(code, sp)
|
|
|
sp.StartJob()
|
|
@@ -223,10 +205,6 @@ func QueueUpScriptList() {
|
|
|
if errstr == "" && spTmp != nil && spTmp.Code != "nil" { //初始化脚本成功
|
|
|
sp_old.ListParallelTaskNum++
|
|
|
logger.Info(code, "子任务开始执行,当前子任务数", sp_old.ListParallelTaskNum)
|
|
|
- spTmp.UserName = info["createuser"]
|
|
|
- spTmp.UserEmail = info["createuseremail"]
|
|
|
- spTmp.MUserName = info["modifyuser"]
|
|
|
- spTmp.MUserEmail = info["modifyemail"]
|
|
|
//启动下载
|
|
|
go func(spt, spo *Spider) {
|
|
|
defer func() {
|
|
@@ -297,10 +275,6 @@ func QueueUpScriptDetail() {
|
|
|
sp, errstr := CreateSpider(code, script, true, false)
|
|
|
if errstr == "" && sp != nil && sp.Code != "nil" { //初始化脚本成功
|
|
|
//sp.Index = qu.IntAll(key)
|
|
|
- sp.UserName = info["createuser"]
|
|
|
- sp.UserEmail = info["createuseremail"]
|
|
|
- sp.MUserName = info["modifyuser"]
|
|
|
- sp.MUserEmail = info["modifyemail"]
|
|
|
sp.IsMainThread = true
|
|
|
Allspiders2.Store(code, sp)
|
|
|
go sp.DownloadListDetail(false) //下载三级页信息
|
|
@@ -454,24 +428,6 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
logger.Info("下架脚本,Allspiders删除")
|
|
|
}
|
|
|
}
|
|
|
- //LoopListPath.Range(func(k, v interface{}) bool {
|
|
|
- // //if v != nil {
|
|
|
- // // info, _ := v.(map[string]string)
|
|
|
- // // if info["code"] == code {
|
|
|
- // // LoopListPath.Store(k, nil)
|
|
|
- // // lock.Lock()
|
|
|
- // // defer lock.Unlock()
|
|
|
- // // ChanDels[qu.IntAll(k)] = code
|
|
|
- // // logger.Info("下架脚本,LoopListPath更新为nil,ChanDels中位置:", k)
|
|
|
- // // }
|
|
|
- // //}
|
|
|
- // if k == code {
|
|
|
- // LoopListPath.Delete(k)
|
|
|
- // logger.Info(code, "脚本下架成功")
|
|
|
- // return false //跳出循环
|
|
|
- // }
|
|
|
- // return true
|
|
|
- //})
|
|
|
} else { //高性能模式
|
|
|
for _, as := range []sync.Map{Allspiders, Allspiders2} {
|
|
|
if tmp, ok := as.Load(code); ok {
|
|
@@ -528,12 +484,6 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
if spd, ok := Allspiders.Load(k); ok { //对应脚本已存在,更新
|
|
|
sp := spd.(*Spider)
|
|
|
sp.ScriptFile = v["script"]
|
|
|
- if v["createuser"] != "" {
|
|
|
- sp.UserName = v["createuser"]
|
|
|
- }
|
|
|
- if v["createuseremail"] != "" {
|
|
|
- sp.UserEmail = v["createuseremail"]
|
|
|
- }
|
|
|
sp.MUserName = v["modifyuser"]
|
|
|
sp.MUserEmail = v["modifyemail"]
|
|
|
Allspiders.Store(k, sp)
|
|
@@ -549,12 +499,6 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
if spd2, ok2 := Allspiders2.Load(k); ok2 { //对应脚本已存在,更新
|
|
|
sp2 := spd2.(*Spider)
|
|
|
sp2.ScriptFile = v["script"]
|
|
|
- if v["createuser"] != "" {
|
|
|
- sp2.UserName = v["createuser"]
|
|
|
- }
|
|
|
- if v["createuseremail"] != "" {
|
|
|
- sp2.UserEmail = v["createuseremail"]
|
|
|
- }
|
|
|
sp2.MUserName = v["modifyuser"]
|
|
|
sp2.MUserEmail = v["modifyemail"]
|
|
|
sp2.LoadScript(&sp2.Name, &sp2.Channel, &sp2.MUserName, k, sp2.ScriptFile, true, false) //更新上架,重载脚本
|
|
@@ -572,69 +516,31 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
} else { //脚本上架
|
|
|
scriptMap := getSpiderScriptDB(code)
|
|
|
logger.Info("上架新增脚本,库中是否已存在该脚本:", code, len(scriptMap) > 0, scriptMap[code] != nil)
|
|
|
- if util.Config.Modal == 1 { //分开采集
|
|
|
+ if util.Config.Modal == 1 && !util.Config.IsHistoryEvent { //分开采集
|
|
|
go UpdateHighListDataByCode(code)
|
|
|
}
|
|
|
if util.Config.Working == 1 { //排队模式
|
|
|
for _, v := range scriptMap {
|
|
|
- listsize := 0
|
|
|
- listHas := false
|
|
|
- count_ok, count_no := 0, 0
|
|
|
+ LoopListPath.Store(code, v) //更新或新增爬虫信息
|
|
|
+ listsize, count_ok, count_no := 0, 0, 0
|
|
|
+ isOk := false
|
|
|
LoopListPath.Range(func(key, val interface{}) bool {
|
|
|
listsize++
|
|
|
- if tmp, ok := val.(map[string]string); ok { //此处判断仅仅为了得到count_ok的值,可直接判断key==code
|
|
|
+ if tmp, ok := val.(map[string]string); ok {
|
|
|
count_ok++
|
|
|
- if tmp["code"] == code && code == key { //队列存在,重载脚本
|
|
|
- logger.Info("上架新增脚本,队列中以有该脚本,进行更新")
|
|
|
- listHas = true
|
|
|
- LoopListPath.Store(key, v)
|
|
|
- logger.Info("队列模式更新列表页信息状态", code)
|
|
|
+ if tmp["code"] == code && key == code { //队列存在
|
|
|
+ isOk = true
|
|
|
}
|
|
|
} else {
|
|
|
count_no++
|
|
|
}
|
|
|
return true
|
|
|
})
|
|
|
- logger.Info("上架新增脚本,队列中共有爬虫", listsize, "当前在线数量:", count_ok, "下线数量:", count_no)
|
|
|
- if !listHas { //队列中不存在,新增
|
|
|
- logger.Info("上架新增脚本,队列中不存在")
|
|
|
- LoopListPath.Store(code, v) //上架
|
|
|
- // lock.Lock()
|
|
|
- // defer lock.Unlock()
|
|
|
- // if len(ChanDels) > 0 {
|
|
|
- // for i, _ := range ChanDels {
|
|
|
- // logger.Info("上架新增脚本,替补队列中位置", i)
|
|
|
- // LoopListPath.Store(i, v)
|
|
|
- // delete(ChanDels, i)
|
|
|
- // break
|
|
|
- // }
|
|
|
- // } else {
|
|
|
- // logger.Info("上架新增脚本,新增队列中位置", listsize)
|
|
|
- // LoopListPath.Store(listsize, v) //上架
|
|
|
- // }
|
|
|
- //校验是否上架成功
|
|
|
- saveList := false //记录是否上架成功
|
|
|
- listsize, count_ok, count_no = 0, 0, 0
|
|
|
- LoopListPath.Range(func(key, val interface{}) bool {
|
|
|
- listsize++
|
|
|
- if tmp, ok := val.(map[string]string); ok {
|
|
|
- count_ok++
|
|
|
- if tmp["code"] == code && key == code { //队列存在
|
|
|
- saveList = true
|
|
|
- logger.Info("上架脚本成功", code)
|
|
|
- }
|
|
|
- } else {
|
|
|
- count_no++
|
|
|
- }
|
|
|
- return true
|
|
|
- })
|
|
|
- logger.Info("上架爬虫后队列中共有爬虫", listsize, "当前在线数量:", count_ok, "下线数量:", count_no)
|
|
|
- if !saveList { //上架失败
|
|
|
- logger.Info("上架脚本", code, " 失败")
|
|
|
- return false, errors.New("use " + code + " failed")
|
|
|
- }
|
|
|
+ logger.Info("上架脚本", isOk, code)
|
|
|
+ logger.Info("上架爬虫后队列中共有爬虫", listsize, "当前在线数量:", count_ok, "下线数量:", count_no)
|
|
|
+ if !isOk {
|
|
|
+ return false, errors.New("use " + code + " failed")
|
|
|
}
|
|
|
- logger.Info("上架新增脚本", code)
|
|
|
up = true
|
|
|
}
|
|
|
} else { //高性能模式
|
|
@@ -644,10 +550,6 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
if spd, ok := Allspiders.Load(k); ok { //对应脚本已存在,更新
|
|
|
sp := spd.(*Spider)
|
|
|
sp.ScriptFile = v["script"]
|
|
|
- sp.UserName = v["createuser"]
|
|
|
- sp.UserEmail = v["createuseremail"]
|
|
|
- sp.MUserName = v["modifyuser"]
|
|
|
- sp.MUserEmail = v["modifyemail"]
|
|
|
UpdateSpider(sp, k, v["script"]) //爬虫其他信息更新
|
|
|
//sp.LoadScript(&sp.Name, &sp.Channel, &sp.MUserName, k, sp.ScriptFile, true, false) //更新上架,重载脚本
|
|
|
Allspiders.Store(k, sp)
|
|
@@ -657,10 +559,6 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
} else { //新增脚本
|
|
|
sp, errstr := CreateSpider(k, v["script"], true, false)
|
|
|
if errstr == "" && sp != nil && sp.Code != "nil" {
|
|
|
- sp.UserName = v["createuser"]
|
|
|
- sp.UserEmail = v["createuseremail"]
|
|
|
- sp.MUserName = v["modifyuser"]
|
|
|
- sp.MUserEmail = v["modifyemail"]
|
|
|
Allspiders.Store(k, sp)
|
|
|
sp.StartJob()
|
|
|
up = true
|
|
@@ -691,30 +589,21 @@ func UpdateSpiderByCodeState(code, state string) (bool, error) {
|
|
|
}
|
|
|
}
|
|
|
//2、Allspiders2对应7100、7110、7400上架采集三级页数据(Allspiders2三级页爬虫集合)
|
|
|
- if util.Config.Modal == 1 {
|
|
|
+ if util.Config.Modal == 1 && !util.Config.IsHistoryEvent {
|
|
|
//Allspiders2
|
|
|
if spd2, ok2 := Allspiders2.Load(k); ok2 { //对应脚本已存在,更新
|
|
|
sp2 := spd2.(*Spider)
|
|
|
sp2.ScriptFile = v["script"]
|
|
|
- sp2.UserName = v["createuser"]
|
|
|
- sp2.UserEmail = v["createuseremail"]
|
|
|
- sp2.MUserName = v["modifyuser"]
|
|
|
- sp2.MUserEmail = v["modifyemail"]
|
|
|
UpdateSpider(sp2, k, v["script"]) //爬虫其他信息更新
|
|
|
sp2.LoadScript(&sp2.Name, &sp2.Channel, &sp2.MUserName, k, sp2.ScriptFile, true, false) //更新上架,重载脚本
|
|
|
Allspiders2.Store(k, sp2) //重载后放入集合
|
|
|
- UpdateHighListDataByCode(k) //爬虫更新上架后,重置数据state=0
|
|
|
// up = true
|
|
|
// err = nil
|
|
|
logger.Info("Allspiders2上架重载脚本", sp2.Code)
|
|
|
} else { //新增脚本
|
|
|
sp2, errstr := CreateSpider(k, v["script"], true, false)
|
|
|
if errstr == "" && sp2 != nil && sp2.Code != "nil" {
|
|
|
- sp2.UserName = v["createuser"]
|
|
|
- sp2.UserEmail = v["createuseremail"]
|
|
|
- sp2.MUserName = v["modifyuser"]
|
|
|
- sp2.MUserEmail = v["modifyemail"]
|
|
|
- sp2.IsMainThread = true //多线程采集时使用
|
|
|
+ sp2.IsMainThread = true //多线程采集详情页时使用
|
|
|
go sp2.DownloadHighDetail(true) //根据列表页数据下载三级页
|
|
|
Allspiders2.Store(k, sp2)
|
|
|
// up = true
|
|
@@ -752,12 +641,6 @@ func ReloadSpiderFile() {
|
|
|
sp := spd.(*Spider)
|
|
|
logger.Info("定时重载脚本", sp.Code)
|
|
|
sp.ScriptFile = v["script"]
|
|
|
- if v["createuser"] != "" {
|
|
|
- sp.UserName = v["createuser"]
|
|
|
- }
|
|
|
- if v["createuseremail"] != "" {
|
|
|
- sp.UserEmail = v["createuseremail"]
|
|
|
- }
|
|
|
sp.MUserName = v["modifyuser"]
|
|
|
sp.MUserEmail = v["modifyemail"]
|
|
|
as.Store(k, sp)
|
|
@@ -780,12 +663,6 @@ func ReloadSpiderFile() {
|
|
|
sp, errstr = CreateSpider(k, v["script"], true, false)
|
|
|
}
|
|
|
if errstr == "" && sp != nil && sp.Code != "nil" {
|
|
|
- if v["createuser"] != "" {
|
|
|
- sp.UserName = v["createuser"]
|
|
|
- }
|
|
|
- if v["createuseremail"] != "" {
|
|
|
- sp.UserEmail = v["createuseremail"]
|
|
|
- }
|
|
|
sp.MUserName = v["modifyuser"]
|
|
|
sp.MUserEmail = v["modifyemail"]
|
|
|
as.Store(k, sp)
|
|
@@ -935,9 +812,12 @@ func CreateSpider(code, luafile string, newstate, thread bool) (*Spider, string)
|
|
|
spider.Timeout = int64(spiderTimeout)
|
|
|
}
|
|
|
spider.TargetChannelUrl = spider.GetVar("spiderTargetChannelUrl")
|
|
|
- spider.UserName = spider.GetVar("spiderUserName")
|
|
|
- spider.UserEmail = spider.GetVar("spiderUserEmail")
|
|
|
- spider.UploadTime = spider.GetVar("spiderUploadTime")
|
|
|
+ //spider.UserName = spider.GetVar("spiderUserName")
|
|
|
+ //spider.UserEmail = spider.GetVar("spiderUserEmail")
|
|
|
+ //spider.UploadTime = spider.GetVar("spiderUploadTime")
|
|
|
+ spider.MUserName = spider.GetVar("spiderUserName")
|
|
|
+ spider.MUserEmail = spider.GetVar("spiderUserEmail")
|
|
|
+
|
|
|
//新增历史补漏
|
|
|
//qu.Debug("-------", spider.GetBoolVar("spiderIsHistoricalMend"), spider.GetBoolVar("spiderIsMustDownload"))
|
|
|
spider.IsHistoricalMend = spider.GetBoolVar("spiderIsHistoricalMend")
|
|
@@ -990,7 +870,8 @@ func UpdateSpider(spider *Spider, code, script string) {
|
|
|
} else {
|
|
|
spider.Timeout = int64(spiderTimeout)
|
|
|
}
|
|
|
-
|
|
|
+ spider.MUserName = spider.GetVar("spiderUserName")
|
|
|
+ spider.MUserEmail = spider.GetVar("spiderUserEmail")
|
|
|
spider.TargetChannelUrl = ts.GetVar("spiderTargetChannelUrl") //栏目地址
|
|
|
//新增历史补漏
|
|
|
spider.IsHistoricalMend = ts.GetBoolVar("spiderIsHistoricalMend")
|
|
@@ -1001,133 +882,6 @@ func UpdateSpider(spider *Spider, code, script string) {
|
|
|
spider.Infoformat = spider.GetIntVar("spiderInfoformat")
|
|
|
}
|
|
|
|
|
|
-//排队模式生成爬虫
|
|
|
-func NewSpider_New(code, luafile string, newstate bool) (*Spider, string) {
|
|
|
- defer qu.Catch()
|
|
|
- spider := &Spider{}
|
|
|
- err := spider.LoadScript(&spider.Name, &spider.Channel, &spider.MUserName, code, luafile, newstate, false)
|
|
|
- if err != "" {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- spider.Code = spider.GetVar("spiderCode")
|
|
|
- spider.Script.SCode = spider.Code
|
|
|
- spider.Name = spider.GetVar("spiderName")
|
|
|
- spider.Channel = spider.GetVar("spiderChannel")
|
|
|
- //spider.LastExecTime = GetLastExectime(spider.Code)
|
|
|
- spider.DownDetail = spider.GetBoolVar("spiderDownDetailPage")
|
|
|
- spider.Collection = spider.GetVar("spider2Collection")
|
|
|
- spider.SpiderRunRate = int64(spider.GetIntVar("spiderRunRate"))
|
|
|
- spider.StoreToMsgEvent = spider.GetIntVar("spiderStoreToMsgEvent")
|
|
|
- spider.StoreMode = spider.GetIntVar("spiderStoreMode")
|
|
|
- spider.CoverAttr = spider.GetVar("spiderCoverAttr")
|
|
|
- spiderSleepBase := spider.GetIntVar("spiderSleepBase")
|
|
|
- if spiderSleepBase == -1 {
|
|
|
- spider.SleepBase = 1000
|
|
|
- } else {
|
|
|
- spider.SleepBase = spiderSleepBase
|
|
|
- }
|
|
|
- spiderSleepRand := spider.GetIntVar("spiderSleepRand")
|
|
|
- if spiderSleepRand == -1 {
|
|
|
- spider.SleepRand = 1000
|
|
|
- } else {
|
|
|
- spider.SleepRand = spiderSleepRand
|
|
|
- }
|
|
|
- spiderTimeout := spider.GetIntVar("spiderTimeout")
|
|
|
- if spiderTimeout == -1 {
|
|
|
- spider.Timeout = 60
|
|
|
- } else {
|
|
|
- spider.Timeout = int64(spiderTimeout)
|
|
|
- }
|
|
|
- spider.TargetChannelUrl = spider.GetVar("spiderTargetChannelUrl")
|
|
|
- if v, ok := Allspiders.Load(spider.Code); ok {
|
|
|
- sp := v.(*Spider)
|
|
|
- spider.TodayDowncount = sp.TodayDowncount
|
|
|
- spider.ToDayRequestNum = sp.ToDayRequestNum
|
|
|
- spider.YesterdayDowncount = sp.YesterdayDowncount
|
|
|
- spider.YestoDayRequestNum = sp.YestoDayRequestNum
|
|
|
- spider.TotalDowncount = sp.TotalDowncount
|
|
|
- spider.TotalRequestNum = sp.TotalRequestNum
|
|
|
- spider.ErrorNum = sp.ErrorNum
|
|
|
- spider.RoundCount = sp.RoundCount
|
|
|
- }
|
|
|
- spider.UserName = spider.GetVar("spiderUserName")
|
|
|
- spider.UserEmail = spider.GetVar("spiderUserEmail")
|
|
|
- spider.UploadTime = spider.GetVar("spiderUploadTime")
|
|
|
-
|
|
|
- //新增历史补漏
|
|
|
- spider.IsHistoricalMend = spider.GetBoolVar("spiderIsHistoricalMend")
|
|
|
- spider.IsMustDownload = spider.GetBoolVar("spiderIsMustDownload")
|
|
|
- //新老爬虫
|
|
|
- spider.IsCompete = spider.GetBoolVar("spiderIsCompete")
|
|
|
- //爬虫类型
|
|
|
- spider.Infoformat = spider.GetIntVar("spiderInfoformat")
|
|
|
- return spider, ""
|
|
|
-}
|
|
|
-
|
|
|
-//高性能模式生成爬虫
|
|
|
-func NewSpider(code, luafile string) (*Spider, string) {
|
|
|
- defer qu.Catch()
|
|
|
- spider := &Spider{}
|
|
|
- err := spider.LoadScript(&spider.Name, &spider.Channel, &spider.MUserName, code, luafile, true, false)
|
|
|
- if err != "" {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- spider.Code = spider.GetVar("spiderCode")
|
|
|
- spider.SCode = spider.Code
|
|
|
- spider.Name = spider.GetVar("spiderName")
|
|
|
- spider.Channel = spider.GetVar("spiderChannel")
|
|
|
-
|
|
|
- //spider.LastExecTime = GetLastExectime(spider.Code)
|
|
|
- spider.DownDetail = spider.GetBoolVar("spiderDownDetailPage")
|
|
|
- spider.Collection = spider.GetVar("spider2Collection")
|
|
|
- spider.SpiderRunRate = int64(spider.GetIntVar("spiderRunRate"))
|
|
|
- //spider.Thread = int64(spider.GetIntVar("spiderThread"))
|
|
|
- spider.StoreToMsgEvent = spider.GetIntVar("spiderStoreToMsgEvent")
|
|
|
- spider.StoreMode = spider.GetIntVar("spiderStoreMode")
|
|
|
- spider.CoverAttr = spider.GetVar("spiderCoverAttr")
|
|
|
- spiderSleepBase := spider.GetIntVar("spiderSleepBase")
|
|
|
- if spiderSleepBase == -1 {
|
|
|
- spider.SleepBase = 1000
|
|
|
- } else {
|
|
|
- spider.SleepBase = spiderSleepBase
|
|
|
- }
|
|
|
- spiderSleepRand := spider.GetIntVar("spiderSleepRand")
|
|
|
- if spiderSleepRand == -1 {
|
|
|
- spider.SleepRand = 1000
|
|
|
- } else {
|
|
|
- spider.SleepRand = spiderSleepRand
|
|
|
- }
|
|
|
- spiderTimeout := spider.GetIntVar("spiderTimeout")
|
|
|
- if spiderTimeout == -1 {
|
|
|
- spider.Timeout = 60
|
|
|
- } else {
|
|
|
- spider.Timeout = int64(spiderTimeout)
|
|
|
- }
|
|
|
- spider.TargetChannelUrl = spider.GetVar("spiderTargetChannelUrl")
|
|
|
- date := time.Unix(time.Now().Unix(), 0).Format(qu.Date_Short_Layout)
|
|
|
- tmp := GetDownloadLast(spider.Code, date) //
|
|
|
- if len(tmp) > 0 {
|
|
|
- spider.TodayDowncount = int32(qu.IntAll(tmp["todaydowncount"]))
|
|
|
- spider.ToDayRequestNum = int32(qu.IntAll(tmp["todaydownreq"]))
|
|
|
- spider.YesterdayDowncount = int32(qu.IntAll(tmp["yesdowncount"]))
|
|
|
- spider.YestoDayRequestNum = int32(qu.IntAll(tmp["yesdownreq"]))
|
|
|
- spider.TotalDowncount = spider.TodayDowncount + int32(qu.IntAll(tmp["totaldown"]))
|
|
|
- spider.TotalRequestNum = spider.ToDayRequestNum + int32(qu.IntAll(tmp["totalreq"]))
|
|
|
- }
|
|
|
- spider.UserName = spider.GetVar("spiderUserName")
|
|
|
- spider.UserEmail = spider.GetVar("spiderUserEmail")
|
|
|
- spider.UploadTime = spider.GetVar("spiderUploadTime")
|
|
|
- //新增历史补漏
|
|
|
- //qu.Debug("-------", spider.GetBoolVar("spiderIsHistoricalMend"), spider.GetBoolVar("spiderIsMustDownload"))
|
|
|
- spider.IsHistoricalMend = spider.GetBoolVar("spiderIsHistoricalMend")
|
|
|
- spider.IsMustDownload = spider.GetBoolVar("spiderIsMustDownload")
|
|
|
- //新老爬虫
|
|
|
- spider.IsCompete = spider.GetBoolVar("spiderIsCompete")
|
|
|
- //爬虫类型
|
|
|
- spider.Infoformat = spider.GetIntVar("spiderInfoformat")
|
|
|
- return spider, ""
|
|
|
-}
|
|
|
-
|
|
|
//多线程生成爬虫
|
|
|
func NewSpiderForThread(code, luafile string) (*Spider, string) {
|
|
|
defer qu.Catch()
|
|
@@ -1170,9 +924,9 @@ func NewSpiderForThread(code, luafile string) (*Spider, string) {
|
|
|
}
|
|
|
spider.TargetChannelUrl = spider.GetVar("spiderTargetChannelUrl")
|
|
|
|
|
|
- spider.UserName = spider.GetVar("spiderUserName")
|
|
|
- spider.UserEmail = spider.GetVar("spiderUserEmail")
|
|
|
- spider.UploadTime = spider.GetVar("spiderUploadTime")
|
|
|
+ //spider.UserName = spider.GetVar("spiderUserName")
|
|
|
+ //spider.UserEmail = spider.GetVar("spiderUserEmail")
|
|
|
+ //spider.UploadTime = spider.GetVar("spiderUploadTime")
|
|
|
//新增历史补漏
|
|
|
//qu.Debug("-------", spider.GetBoolVar("spiderIsHistoricalMend"), spider.GetBoolVar("spiderIsMustDownload"))
|
|
|
spider.IsHistoricalMend = spider.GetBoolVar("spiderIsHistoricalMend")
|
|
@@ -1242,13 +996,15 @@ func GetScriptByTmp(luaconfig map[string]interface{}) string {
|
|
|
if luaconfig["contentcheck"] == nil {
|
|
|
luaconfig["contentcheck"] = ""
|
|
|
}
|
|
|
+ modifyUser := qu.ObjToString(luaconfig["modifyuser"])
|
|
|
+ modifyUserEmail := qu.ObjToString(luaconfig["createuseremail"])
|
|
|
if luaconfig != nil && len(luaconfig) > 0 {
|
|
|
common := luaconfig["param_common"].([]interface{})
|
|
|
//新增spiderIsHistoricalMend spiderIsMustDownload
|
|
|
if len(common) == 15 {
|
|
|
- common = append(common, "", "", "")
|
|
|
+ common = append(common, modifyUser, modifyUserEmail, "")
|
|
|
} else {
|
|
|
- common = append(common, false, false, "", "", "")
|
|
|
+ common = append(common, false, false, modifyUser, modifyUserEmail, "")
|
|
|
}
|
|
|
for k, v := range common {
|
|
|
if k == 4 || k == 5 || k == 6 || k == 9 || k == 10 {
|