main.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package main
  2. import (
  3. "container/list"
  4. "embed"
  5. be "spider_creator/backend"
  6. bdb "spider_creator/backend/db"
  7. "spider_creator/backend/script"
  8. bvm "spider_creator/backend/vm"
  9. bws "spider_creator/backend/webservice"
  10. "github.com/wailsapp/wails/v2"
  11. "github.com/wailsapp/wails/v2/pkg/options"
  12. "github.com/wailsapp/wails/v2/pkg/options/assetserver"
  13. qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  14. )
  15. var (
  16. //go:embed all:frontend/dist
  17. assets embed.FS
  18. app *App
  19. db *bdb.SpiderDb
  20. exitCh chan bool
  21. baseDir, attachesDir string = ".", ""
  22. currentSpiderConfig *be.SpiderConfig = new(be.SpiderConfig)
  23. currentResults = list.New() //b.ResultItems = make(b.ResultItems, 0)
  24. vm *bvm.VM
  25. glvm *script.GLVm
  26. ws *bws.WebService
  27. browserLoadResourceTimeout int64 = 5
  28. //重点网站和正式环境
  29. isOnly4MainSite = "false"
  30. browserDisableLoadResources = "ws://;wss://;.tof;.woff;.ico;.mp4;.zip;.rar;.exe;"
  31. //serverAddress = "http://visualizeld.spdata.jianyu360.com/%s" //正式环境
  32. serverAddress = "http://127.0.0.1:8091/%s" //正式环境
  33. //验证码服务
  34. serverCodeTimeOut int64 = 15
  35. serverCodeAddress = "http://pycaptcha.spdata.jianyu360.com/v1/images/discern?pic_type="
  36. serverCodeFreeAddressOcr = "http://pycaptcha.spdata.jianyu360.com/v1/images/verify"
  37. serverCodeFreeAddressArithmetic = "http://pycaptcha.spdata.jianyu360.com/v1/images/arithmetic"
  38. serverCodeUsername = "jianyu001"
  39. serverCodePassword = "123qwe!A"
  40. )
  41. //build
  42. // wails build -ldflags="-X 'main.isOnly4MainSite=false'" -o="剑鱼可视化爬虫开发工具_正式.exe"
  43. func init() {
  44. //be.LoadConfig("./config.yaml")
  45. //从配置文件外,编译时设定浏览器排除加载资源。比配置文件优先级低
  46. if browserDisableLoadResources != "" {
  47. be.Cfg.DisableLoadResource = browserDisableLoadResources
  48. }
  49. if browserLoadResourceTimeout > 0 {
  50. be.Cfg.BrowserLoadResourceTimeout = browserLoadResourceTimeout
  51. }
  52. //验证码
  53. if serverCodeTimeOut > 0 {
  54. be.Cfg.ServerCodeTimeOut = serverCodeTimeOut
  55. }
  56. if serverCodeFreeAddressOcr != "" {
  57. be.Cfg.ServerCodeFreeAddressOcr = serverCodeFreeAddressOcr
  58. }
  59. if serverCodeFreeAddressArithmetic != "" {
  60. be.Cfg.ServerCodeFreeAddressArithmetic = serverCodeFreeAddressArithmetic
  61. }
  62. if serverCodeUsername != "" {
  63. be.Cfg.ServerCodeUsername = serverCodeUsername
  64. }
  65. if serverCodePassword != "" {
  66. be.Cfg.ServerCodePassword = serverCodePassword
  67. }
  68. //客户端版本
  69. be.Cfg.IsOnly4MainSite = isOnly4MainSite == "true"
  70. if be.Cfg.IsOnly4MainSite {
  71. serverAddress = "http://visualize.spdata.jianyu360.com/%s" //重点网站
  72. }
  73. qu.Debug("重点网站:", be.Cfg.IsOnly4MainSite, serverAddress)
  74. }
  75. func main() {
  76. go updateData() //数据保存
  77. // Create an instance of the app structure
  78. app = NewApp()
  79. // Create application with options
  80. err := wails.Run(&options.App{
  81. Title: "剑鱼-爬虫开发平台 v1.0",
  82. Width: 1224,
  83. Height: 668,
  84. AssetServer: &assetserver.Options{
  85. Assets: assets,
  86. },
  87. BackgroundColour: &options.RGBA{R: 255, G: 255, B: 255, A: 1},
  88. OnStartup: app.startup,
  89. OnShutdown: app.destory,
  90. Bind: []interface{}{
  91. app,
  92. },
  93. })
  94. if err != nil {
  95. println("Error:", err.Error())
  96. }
  97. }