Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了golang使用正则表达式解析网页大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

废话少说,直接奉上代码


package main
import (
"fmt"
"time"
"io/IoUtil"
"net/http"
"regexp"
"Strings"
)
func main() {
    ip_pool := []String{
                "172.16.1.128",
                "172.16.1.129",
                "172.16.1.131",
                "172.16.1.132",
                "172.16.1.133",
                "172.16.1.134",
                "172.16.1.135",
                "172.16.1.136",
                "172.16.1.137",
                "172.16.1.138",
                "172.16.1.190",
            }
    for {
        for i:=0;i<len(ip_pool);i++  {
            url := "http://"+ip_pool[i]+":10022"
            //fmt.Println("-----------------",ip_pool[i],"---------")
             get_url(url)
            time.Sleep(1*time.Millisecond)
        }
//time.Sleep(time.Second * 60)
    }
}
func get_url(url String){
    fmt.Println("----------",url,"----------------")
    resp,err := http.Get(url)
    if err != nil {
        fmt.Println("http get error.")
    }
    defer resp.body.Close()
    body,err := IoUtil.ReadAll(resp.body)
    if err != nil {
        fmt.Println("http read error")
    }
src := String(body)
//将HTML标签全转换成小写
re,_ := regexp.Compile("\\<[\\S\\s]+?\\>")
src = re.replaceAllStringFunc(src,Strings.ToLower)
//  提取table 标签
re,_ = regexp.Compile("\\<!doc[\\S\\s]+?\\<table")
src = re.replaceAllString(src,"<table")
re,_ = regexp.Compile("</table\\>[\\S\\s]+?\\</html\\>")
src = re.replaceAllString(src,"</table>")
// 干掉行首的空格
 re,_ = regexp.Compile("(\\<tr>)([\\S\\s\\<>\"\\d]+?)(\\</tr>)")
 //src = re.replaceAllString(src,"$2")
 src = re.replaceAllString(src,"$2]")
 // 去掉<>标签
re,_ = regexp.Compile("<[\\S\\s]+?>")
src = re.replaceAllString(src,"")
re,_ = regexp.Compile("\n")
src = re.replaceAllString(src,_ = regexp.Compile("[ ]+")
src = re.replaceAllString(src," ")
re,_ = regexp.Compile("]")
 src = re.replaceAllString(src,"\n")
// 变成 json                1           2                3           4
re,_ = regexp.Compile("(\\w*)(\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2}:\\w{2})([A-Za-z ]*)(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} )([V\\d\\.]* )(\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?)")
/* (((\\d{4}-\\d{2}-\\d{2})+ (\\d{2}:\\d{2}:\\d{2})*?)")
*/
src = re.replaceAllString(src,"$1,$2,$3,$4,$5,$6,")
//re,_ = regexp.Compile("(<[\\S\\s]*?\">)([\\S\\s]+?)(</t")
//src = re.replaceAllString(src,"$2,")
// re,_ = regexp.Compile("<[\\S\\s]+?>")
// src = re.replaceAllString(src,"")
//reg := regexp.MustCompile("([A-Za-z]+?)(\n[\\s]+)([\\d]+)")
// src =  reg.replaceAllString(src,"$1:$3")
//去除连续的换行符
//re,_ = regexp.Compile("\\s{2,}")
//src = re.replaceAllString(src,"\n")
//re = regexp.MustCompile("\n\\d+")
//fmt.Println(re.replaceAllLiteralString("Hello\n2\nwork",'\d'))
src = Strings.replace(src,"虚拟机名称 虚拟机MAC 虚拟机状态 心跳时间 引擎版本 病毒库日期 扫描样本数","vm_name,vm_mac,vm_state,vm_heart,vm_eg,vm_av_db,vm_count",-1)
fmt.Println(srC)
//reg,err := regexp.Compile("[[0-9A-Za-z]{2}:?]{6}")
//fmt.Printf("%q,%v\n",reg.FindString("00:16:3e:4a:29:35"),err)
// "Hello",
// text := "Hello\n123\nGo\n123"
// reg = regexp.MustCompile("([A-Za-z]+?)(\n)([\\d]+)")
// fmt.Printf("%q\n",reg.replaceAllString(text,"$3:$1"))
//fmt.Println(Strings.TrimSpace(srC))
//去除STYLE
//re,_ = regexp.Compile("\\<style[\\S\\s]+?\\</style\\>")
//src = re.replaceAllString(src,"")
//去除SCRIPT
//re,_ = regexp.Compile("\\<script[\\S\\s]+?\\</script\\>")
//src = re.replaceAllString(src,"")
//去除所有尖括号内的HTML代码,并换成换行符
//re,_ = regexp.Compile("\\<[\\S\\s]+?\\>")
//src = re.replaceAllString(src,"\n")
//去除连续的换行符
//re,"\n")
//fmt.Println(Strings.TrimSpace(srC))
}

以上就是本文给大家分享代码了,希望大家能够喜欢。

大佬总结

以上是大佬教程为你收集整理的golang使用正则表达式解析网页全部内容,希望文章能够帮你解决golang使用正则表达式解析网页所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。