MCPcopy
hub / github.com/pingc0y/URLFinder / OutFileCsv

Function OutFileCsv

result/result.go:105–262  ·  view source on GitHub ↗

导出csv

(out string)

Source from the content-addressed store, hash-verified

103
104// 导出csv
105func OutFileCsv(out string) {
106 //获取域名
107 var host string
108 re := regexp.MustCompile("([a-z0-9\\-]+\\.)*([a-z0-9\\-]+\\.[a-z0-9\\-]+)(:[0-9]+)?")
109 hosts := re.FindAllString(cmd.U, 1)
110 if len(hosts) == 0 {
111 host = cmd.U
112 } else {
113 host = hosts[0]
114 }
115
116 //抓取的域名优先排序
117 if cmd.S != "" {
118 ResultUrl = util.SelectSort(ResultUrl)
119 ResultJs = util.SelectSort(ResultJs)
120 }
121 ResultJsHost, ResultJsOther := util.UrlDispose(ResultJs, host, util.GetHost(cmd.U))
122 ResultUrlHost, ResultUrlOther := util.UrlDispose(ResultUrl, host, util.GetHost(cmd.U))
123 Domains = util.GetDomains(util.MergeArray(ResultJs, ResultUrl))
124 var fileName string
125 if out != "" {
126 fileName = out
127 } else {
128 //输出到文件
129 if strings.Contains(host, ":") {
130 host = strings.Replace(host, ":", ":", -1)
131 }
132 //在当前文件夹创建文件夹
133 err := os.MkdirAll(cmd.O+"/"+host, 0755)
134 if err != nil {
135 fmt.Printf(cmd.O+"/"+host+" 目录创建失败 :%s", err)
136 return
137 }
138 //多相同url处理
139 fileName = cmd.O + "/" + host + "/" + host + ".csv"
140 for fileNum := 1; util.Exists(fileName); fileNum++ {
141 fileName = cmd.O + "/" + host + "/" + host + "(" + strconv.Itoa(fileNum) + ").csv"
142 }
143 }
144 file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY, 0644)
145
146 resultWriter := csv.NewWriter(file)
147 // 写数据到文件
148 if err != nil {
149 fmt.Println("open file error:", err)
150 return
151 }
152 if cmd.S == "" {
153 resultWriter.Write([]string{"url", "Source"})
154 } else {
155 resultWriter.Write([]string{"url", "Status", "Size", "Title", "Redirect", "Source"})
156 }
157 if cmd.D == "" {
158 resultWriter.Write([]string{strconv.Itoa(len(ResultJsHost)) + " JS to " + util.GetHost(cmd.U)})
159 } else {
160 resultWriter.Write([]string{strconv.Itoa(len(ResultJsHost)+len(ResultJsOther)) + " JS to " + cmd.D})
161 }
162

Callers 1

ResFunction · 0.92

Calls 6

SelectSortFunction · 0.92
UrlDisposeFunction · 0.92
GetHostFunction · 0.92
GetDomainsFunction · 0.92
MergeArrayFunction · 0.92
ExistsFunction · 0.92

Tested by

no test coverage detected