Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
module github.com/wgpsec/ENScan

go 1.24.0

toolchain go1.24.5
go 1.23.0

require (
github.com/antchfx/htmlquery v1.2.4
Expand Down
19 changes: 16 additions & 3 deletions runner/enscan.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,30 @@ import (
// SearchByKeyWord 根据关键词筛选公司
func (j *EnJob) SearchByKeyWord(keyword string) (string, error) {
enList, err := j.job.AdvanceFilter(keyword)
enMap := j.job.GetENMap()["enterprise_info"]
if err != nil {
gologger.Error().Msg(err.Error())
return "", err
}
gologger.Info().Msgf("关键词:“%s” 查询到 %d 个结果,默认选择第一个 \n", keyword, len(enList))

// 检查搜索结果是否为空
if len(enList) == 0 {
gologger.Error().Msgf("关键词:\"%s\" 未查询到任何结果", keyword)
return "", fmt.Errorf("关键词:\"%s\" 未查询到任何结果", keyword)
}

enMap := j.job.GetENMap()["enterprise_info"]
gologger.Info().Msgf("关键词:\"%s\" 查询到 %d 个结果,默认选择第一个 \n", keyword, len(enList))
//展示结果
utils.TBS(append(enMap.KeyWord[:3], "PID"), append(enMap.Field[:3], enMap.Field[10]), "企业信息", enList)
// 选择第一个的PID
pid := enList[0].Get(enMap.Field[10]).String()

// 检查PID是否为空
if pid == "" {
gologger.Error().Msgf("关键词:\"%s\" 获取到的PID为空", keyword)
return "", fmt.Errorf("关键词:\"%s\" 获取到的PID为空", keyword)
}

gologger.Debug().Str("PID", pid).Msgf("搜索")
return pid, nil
}
Expand Down Expand Up @@ -117,7 +131,6 @@ func (j *EnJob) getInfoList(pid string, em *common.EnsGo, sk string, ref string)
gologger.Info().Msgf("正在获取 ⌈%s⌋ 第⌈%d/%d⌋页\n", em.Name, i, pages)
d, e := j.getInfoPage(pid, i, em)
if e != nil {
// TODO 这里后续考虑加入重试机制,或者是等任务跑完可以再次尝试
gologger.Error().Msgf("GET ⌈%s⌋ 第⌈%d⌋页失败\n", em.Name, i)
continue
}
Expand Down
24 changes: 22 additions & 2 deletions runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,32 @@ func (q *ESJob) processTask(task ENJobTask) {
} else {
pid, err = enJob.SearchByKeyWord(keyword)
if err != nil {
gologger.Error().Msg(err.Error())
gologger.Error().Msgf("搜索关键词失败:%s,跳过该任务", err.Error())
// 即使搜索失败,也要确保任务能够继续
enJob.enWg.Done() // 先调用Done(),然后再Wait()
enJob.enWg.Wait()
// 创建一个空的结果数据,避免程序卡住
rdata := map[string][]map[string]string{
"enterprise_info": {},
}
q.ch <- rdata
q.wg.Done()
return
}
}
// 获取企业信息,通过查询到的信息
if err = enJob.getInfoById(pid, q.op.GetField); err != nil {
gologger.Error().Msgf("获取企业信息失败:%s", err.Error())
gologger.Error().Msgf("获取企业信息失败:%s,跳过该任务", err.Error())
// 即使获取企业信息失败,也要确保任务能够继续
enJob.enWg.Done() // 先调用Done(),然后再Wait()
enJob.enWg.Wait()
// 创建一个空的结果数据,避免程序卡住
rdata := map[string][]map[string]string{
"enterprise_info": {},
}
q.ch <- rdata
q.wg.Done()
return
}
}
}
Expand Down
Loading