代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
GO
】
正则表达式网页解析
作者:
MtrS
/ 发布于
2015/1/12
/
1292
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, "") re,_ = 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, _ = regexp.Compile("\\s{2,}") //src = re.ReplaceAllString(src, "\n") //fmt.Println(strings.TrimSpace(src)) }
试试其它关键字
正则表达式
网页解析
同语言下
.
将SQL查询结果转换成map数组
.
德州扑克的核心规则算法
.
格式化时间
.
超简单QR二维码生成器
.
检查命令位置,替代 mac 下 whereis
.
百度 API 翻译工具
.
鼠标事件处理
.
快速排序
.
鸡尾酒排序
.
冒泡排序
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
MtrS
贡献的其它代码
(
5
)
.
正则表达式网页解析
.
解析html
.
跨域请求json数据
.
http请求
.
request下载文件
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3