|
@@ -1,7 +1,6 @@
|
|
|
package luacheck
|
|
|
|
|
|
import (
|
|
|
- "encoding/json"
|
|
|
"fmt"
|
|
|
"github.com/PuerkitoBio/goquery"
|
|
|
lua "github.com/yuin/gopher-lua"
|
|
@@ -138,18 +137,19 @@ func LuaCheck(lua map[string]interface{}, err, warn map[string]string) {
|
|
|
|
|
|
//2、列表页
|
|
|
list := qu.ObjToString(lua["str_list"])
|
|
|
+ listTmp := util.SymbolReg.ReplaceAllString(list, "")
|
|
|
//2.1 基本参数是否一致
|
|
|
//site、channel、code
|
|
|
code := qu.ObjToString(param_common[0])
|
|
|
site := qu.ObjToString(param_common[1])
|
|
|
channel := qu.ObjToString(param_common[2])
|
|
|
- if !strings.Contains(list, fmt.Sprintf(util.CheckText_Site, site)) {
|
|
|
+ if !strings.Contains(listTmp, fmt.Sprintf(util.CheckText_Site, site)) {
|
|
|
err["站点模板"] = `站点的值与模板不一致`
|
|
|
}
|
|
|
- if !strings.Contains(list, fmt.Sprintf(util.CheckText_Channel, channel)) {
|
|
|
+ if !strings.Contains(listTmp, fmt.Sprintf(util.CheckText_Channel, channel)) {
|
|
|
err["栏目模板"] = `栏目的值与模板不一致`
|
|
|
}
|
|
|
- if !strings.Contains(list, fmt.Sprintf(util.CheckText_Code, code)) {
|
|
|
+ if !strings.Contains(listTmp, fmt.Sprintf(util.CheckText_Code, code)) {
|
|
|
err["爬虫代码模板"] = `爬虫代码的值与模板不一致`
|
|
|
}
|
|
|
//area、city、district
|
|
@@ -157,19 +157,13 @@ func LuaCheck(lua map[string]interface{}, err, warn map[string]string) {
|
|
|
district := qu.ObjToString(model["district"])
|
|
|
|
|
|
//校验列表页area、city、distric
|
|
|
- if !strings.Contains(list, util.CheckText_Area) {
|
|
|
- err["省份模板"] = util.CheckText_Area + "模板不存在"
|
|
|
- } else if area != "" && !strings.Contains(list, fmt.Sprintf(util.CheckText_Area+`="%s"`, area)) {
|
|
|
+ if !strings.Contains(listTmp, fmt.Sprintf(util.CheckText_Area+`="%s"`, area)) {
|
|
|
err["省份模板"] = `省份信息与模板不一致`
|
|
|
}
|
|
|
- if !strings.Contains(list, util.CheckText_City) {
|
|
|
- err["城市模板"] = util.CheckText_City + "模板不存在"
|
|
|
- } else if city != "" && !strings.Contains(list, fmt.Sprintf(util.CheckText_City+`="%s"`, city)) {
|
|
|
+ if !strings.Contains(listTmp, fmt.Sprintf(util.CheckText_City+`="%s"`, city)) {
|
|
|
err["城市模板"] = `城市信息与模板不一致`
|
|
|
}
|
|
|
- if !strings.Contains(list, util.CheckText_District) {
|
|
|
- err["区/县模板"] = util.CheckText_District + "模板不存在"
|
|
|
- } else if district != "" && !strings.Contains(list, fmt.Sprintf(util.CheckText_District+`="%s"`, district)) {
|
|
|
+ if !strings.Contains(listTmp, fmt.Sprintf(util.CheckText_District+`="%s"`, district)) {
|
|
|
err["区/县模板"] = `区/县信息与模板不一致`
|
|
|
}
|
|
|
//2.2 sendListNum
|
|
@@ -246,11 +240,12 @@ func luaDownload(pageNum int, lua map[string]interface{}, err, warn map[string]s
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if downloadNum == 0 {
|
|
|
+ if downloadNum == 0 && s.PageOneTextHash == "" && s.PageTwoTextHash == "" { //列表页过滤完,downloadNum无法准确判断采集为0
|
|
|
err["列表页下载异常"] = "列表页下载量为0"
|
|
|
- return
|
|
|
+ } else if s.PageOneTextHash != "" && s.PageOneTextHash == s.PageTwoTextHash {
|
|
|
+ err["前两页数据一致"] = "前两页数据一致"
|
|
|
}
|
|
|
+
|
|
|
listResultCheck(pageNum, result, err, warn, s) //列表页下载结果校验
|
|
|
s.L.Close()
|
|
|
//校验
|
|
@@ -270,12 +265,9 @@ func listResultCheck(pageNum int, lists map[int][]map[string]interface{}, err, w
|
|
|
wg := &sync.WaitGroup{}
|
|
|
lock := &sync.Mutex{}
|
|
|
ch := make(chan bool, 10)
|
|
|
- hrefs := make([][]string, len(lists)) //记录前两页数据链接
|
|
|
var i, num int
|
|
|
for _, list := range lists {
|
|
|
- pageHrefs := []string{}
|
|
|
for _, l := range list {
|
|
|
- pageHrefs = append(pageHrefs, qu.ObjToString(l["href"]))
|
|
|
if num > 50 {
|
|
|
break
|
|
|
}
|
|
@@ -324,18 +316,10 @@ func listResultCheck(pageNum int, lists map[int][]map[string]interface{}, err, w
|
|
|
lock.Unlock()
|
|
|
}(l)
|
|
|
}
|
|
|
- hrefs[i] = pageHrefs
|
|
|
i++
|
|
|
}
|
|
|
wg.Wait()
|
|
|
|
|
|
- if len(hrefs) >= 2 {
|
|
|
- hrefByte1, _ := json.Marshal(hrefs[0])
|
|
|
- hrefByte2, _ := json.Marshal(hrefs[1])
|
|
|
- if sp.GetHashKey(hrefByte1) == sp.GetHashKey(hrefByte2) {
|
|
|
- err["前两页数据一致"] = "前两页数据一致"
|
|
|
- }
|
|
|
- }
|
|
|
if fileNum == 0 {
|
|
|
warn["未下载任何附件"] = "未下载任何附件"
|
|
|
}
|
|
@@ -414,7 +398,7 @@ func detailResultCheck(data map[string]interface{}, warn, err map[string]string)
|
|
|
href := qu.ObjToString(data["href"])
|
|
|
//校验s_title
|
|
|
if data["s_title"] == nil {
|
|
|
- err["s_title缺失"] = "详情页s_title缺失"
|
|
|
+ err["s_title缺失"] = "详情页无s_title信息(" + href + ")"
|
|
|
} else {
|
|
|
//校验s_title
|
|
|
s_title := qu.ObjToString(data["s_title"])
|