123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package main
- import (
- "log"
- "strings"
- elastic "es"
- "mongodb"
- common "qfw/util"
- "github.com/tealeg/xlsx"
- )
- var (
- Bidding *mongodb.MongodbSim
- Es elastic.Es
- Es2 elastic.Es
- cfg = new(Config)
- sMap = map[string]string{}
- )
- func init() {
- common.ReadConfig(&cfg)
- Bidding = mongodb.NewMgoWithUser(cfg.Bidding.Address, cfg.Bidding.DbName, cfg.Bidding.UserName, cfg.Bidding.Password, cfg.Bidding.DbSize)
- Es = elastic.NewEs(cfg.Es.Version, cfg.Es.Address, cfg.Es.DbSize, cfg.Es.UserName, cfg.Es.Password)
- Es2 = elastic.NewEs(cfg.Es2.Version, cfg.Es2.Address, cfg.Es2.DbSize, cfg.Es2.UserName, cfg.Es2.Password)
- }
- func main() {
- // go FindBiddingBack()
- // sMaps()
- FindBidding()
- }
- func FindBidding() {
- session := Bidding.GetMgoConn()
- query := map[string]interface{}{}
- defer Bidding.DestoryMongoConn(session)
- count := 0
- iter := session.DB(cfg.Bidding.DbName).C("bidding").Find(&query).Sort("-_id").Iter()
- thisData := map[string]interface{}{}
- for {
- if !iter.Next(&thisData) {
- break
- }
- count++
- id := mongodb.BsonIdToSId(thisData["_id"])
- title := common.ObjToString(thisData["title"])
- projectName := common.ObjToString(thisData["projectname"])
- spidercode := common.ObjToString(thisData["spidercode"])
- if strings.Contains(title, "..") {
- if strings.Contains(projectName, "..") {
- title = strings.ReplaceAll(title, ".", "")
- } else {
- title = projectName
- }
- sMap[spidercode] = "1"
- ok := Bidding.UpdateById("bidding", id, map[string]interface{}{"$set": map[string]interface{}{"title": title}})
- if ok {
- updateData(id, title, spidercode)
- } else {
- log.Println("bidding修改失败!!", id)
- }
- }
- thisData = map[string]interface{}{}
- }
- }
- func FindBiddingBack() {
- session := Bidding.GetMgoConn()
- query := map[string]interface{}{}
- defer Bidding.DestoryMongoConn(session)
- count := 0
- iter := session.DB(cfg.Bidding.DbName).C("bidding_back").Find(&query).Iter()
- thisData := map[string]interface{}{}
- for {
- if !iter.Next(&thisData) {
- break
- }
- count++
- id := mongodb.BsonIdToSId(thisData["_id"])
- title := common.ObjToString(thisData["title"])
- projectName := common.ObjToString(thisData["projectname"])
- spidercode := common.ObjToString(thisData["spidercode"])
- if strings.Contains(title, "..") {
- if strings.Contains(projectName, "..") {
- thisData["title"] = strings.ReplaceAll(title, ".", "")
- } else {
- thisData["title"] = projectName
- }
- sMap[spidercode] = "1"
- ok := Bidding.UpdateById("bidding", id, map[string]interface{}{"$set": map[string]interface{}{"title": title}})
- if ok {
- updateData(id, title, spidercode)
- } else {
- log.Println("bidding修改失败!!", id)
- }
- }
- thisData = map[string]interface{}{}
- }
- }
- func updateData(id, title, spidercode string) {
- data := Es.GetById("bidding", "bidding", id)
- if data != nil && len(*data) > 0 {
- dataMap := (*data)[0]
- dataMap["title"] = title
- ok := Es.UpdateNewDoc("bidding", "bidding", dataMap)
- if ok {
- log.Println("es老集群修改成功", id, spidercode)
- } else {
- log.Println("es老集群修改失败 !!!", id, title)
- }
- oks := Es2.UpdateNewDoc("bidding", "bidding", dataMap)
- if oks {
- log.Println("es新集群修改成功", id, spidercode)
- } else {
- log.Println("es新集群修改失败 !!!", id, title)
- }
- }
- }
- func sMaps() {
- xf := xlsx.NewFile()
- sh, _ := xf.AddSheet("详细数据")
- for k, _ := range sMap {
- row := sh.AddRow()
- row.AddCell().SetString(k)
- }
- err := xf.Save("./爬虫代码统计.xlsx")
- if err != nil {
- log.Println("xls error")
- }
- }
|