-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
81 lines (76 loc) · 1.35 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package main
import (
"telecom/spider"
"log"
"path/filepath"
"os"
"fmt"
"flag"
)
var (
h bool
t string
p string
)
func init() {
flag.BoolVar(&h, "h", false, "this help")
flag.StringVar(&t, "t", "visit", "set `type`:spider,visit")
flag.StringVar(&p, "p", "xici", "set `spider`:xici,kuai,cloud,en")
flag.Usage = usage
}
func main() {
flag.Parse()
if h {
flag.Usage()
return
}
if t == "spider" {
rootPath, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err != nil {
log.Fatal(err)
}
fmt.Println(rootPath)
var s spider.BaseSpiderInterface
if p == "xici" {
s = &spider.XiciSpider{}
} else if p == "kuai" {
s = &spider.KuaiSpider{}
} else if p == "en" {
s = &spider.EnSpider{}
} else if p == "cloud" {
s = &spider.CloudSpider{}
} else if p == "ss" {
s = &spider.SsSpider{}
} else if p == "pl" {
s = &spider.PlSpider{}
} else {
flag.Usage()
return
}
s.Init()
s.Initialize()
//s.SetPath(rootPath)
s.Spider()
s.CheckProxyPort()
err = s.SaveProxy()
if err != nil {
log.Println(err)
}
} else if t == "visit" {
rootPath, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err != nil {
log.Fatal(err)
}
s := &spider.BaseSpider{}
s.Init()
s.Initialize()
s.Path = rootPath
s.Visit()
} else {
flag.Usage()
}
}
func usage() {
fmt.Fprintf(os.Stderr, `aaa`)
flag.PrintDefaults()
}