`
balsampears
  • 浏览: 49462 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

用golang的正则regexp:去除HTML,CSS,SCRIPT代码,仅保留页面文字

阅读更多
这段时间比较忙了,没啥空折腾golang。。。再加上前段业余时间基本都在改用python写的小东西,陆陆续续在调整和fix bug。。。

昨晚抽空又练习了一下golang的正则,其正则表达式的语法与perl和python是一样的。。。所以如果已经熟悉正则语法了,还是很容易上手的,

昨晚练习后,最后写了个小功能,去除网页的HTML等相关代码,费话不多说了,直接上码:
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"regexp"
	"strings"
)

func main() {
	resp, err := http.Get("http://www.baidu.com")
	// resp, err := http.Get("http://www.163.com")
	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)

	//去除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))
}

分享到:
评论

相关推荐

    Golang正则表达式:模式匹配的瑞士军刀

    Golang,通常被称为Go语言,是一种由谷歌开发的编程语言。它以简洁、高效、安全著称,并且非常适合构建大规模的分布式系统和微服务。Go语言的一些主要特点包括: 1. **简洁性**:Go语言的语法非常简单,易于学习。 ...

    Go-对人友好的Golang正则表达式

    在Go语言(Golang)中,正则表达式是通过`regexp`包来实现的,它提供了丰富的功能,使得开发者能够方便地处理字符串中的模式匹配问题。本篇文章将深入探讨Go语言中的正则表达式,帮助你更好地理解和使用这个强大的...

    《Golang项目实战:bilibili后台代码优化》_哔哩哔哩_bilibili_go-commo

    《Golang项目实战:bilibili后台代码优化》_哔哩哔哩_bilibili_go-commo_bilibili-optimization

    浅析golang 正则表达式

    除了使用`regexp`包提供的函数外,还可以使用`Regexp`对象的方法,如`FindString`用于查找字符串中匹配正则表达式的子串,`Match`用于检测字符串是否匹配正则表达式等。 Go语言的正则表达式还有捕获组(用括号表示...

    golang_learn:golang 学习笔记

    golang:books:: 《Go语言编程入门与实战技巧》-黄靖钧 《Go语言核心编程》-李文塔 《Go编发编程实战》-郝林 《Go语言编程》-许式伟 《Go程序设计语言》-译本 Go语言圣经 《Go语言学习笔记》-雨痕 - 柴树杉,曹春晖 ...

    golang-re2:谷歌正则表达式库 re2 的包装库

    golang-re2 介绍 目的是当你想提高谷歌正则表达式库re2的wrapper library regexp包的性能时,通过替换来解决。 执照 在 LICENSE 中列出(麻省理工学院许可证 (MIT)) 安装 C++制作的RE2和RE2必须预先安装。另外,CRE...

    GoLang-从入门到实战-经典教程

    Golang并发模型:轻松入门流水线模型 Golang并发模型:轻松入门流水线FAN模式 Golang并发模型:合理退出并发协程 Golang并发模型:轻松入门select Golang并发模型:select进阶 Golang并发模型:轻松入门协程池 ...

    golang使用正则表达式解析网页

    在本文中,将介绍如何使用Go语言(通常称为Golang)编写程序以使用正则表达式解析网页。Go语言以其简洁的语法和高效的性能被广泛应用于网络编程中。正则表达式是一种强大的文本处理工具,常用于匹配和操作字符串。 ...

    Golang-Blockchain:利用Golang并发的区块链代码

    Golang-Blockchain:利用Golang并发的区块链代码

    golang常用库之操作数据库的orm框架-gorm基本使用详解

    golang常用库:配置文件解析库-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:字段映射-模型定义 gorm中通常用struct来映射字段. gorm教程中叫模型定义 比如我们定义一个模型Model: type User ...

    typescriptify-golang-structs:Golang结构到TypeScript类的接口转换器

    Golang JSON到TypeScript模型转换器 安装 命令行工具: go get github.com/tkrajina/typescriptify-golang-structs/tscriptify 图书馆: go get github.com/tkrajina/typescriptify-golang-structs 用法 使用...

    golang-samples:使用Go编程语言为Google Cloud编写的示例应用程序和代码

    Google Cloud Platform Go示例 该存储库包含用Go语言编写的示例代码,用于演示Google Cloud Platform。 一些示例在上具有随附的指南。 有关详细信息,请参见相应的自述文件。取决于样品将您需要的任何代码从该存储库...

    golang-projects:golang程序源代码

    在本项目中,“golang-projects:golang程序源代码”显然是一个关于Go语言编程的开源项目,主要包含Golang的源代码。Go语言,又称Golang,是Google开发的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程...

    flux:golang 的流利正则表达式

    golang 中的 Fluent 正则表达式是的的一个端口 要求 高朗使用 1.4.2 版创建和测试 安装 Flux 可通过go get github.com/alexanderbartels/flux 例子 这个简单的例子说明了您将使用flux 的方式及其流畅的界面来构建...

    golang-note:Golang学习笔记

    Golang学习笔记 Golang的电子笔记,方便以后查阅,建立知识体系查漏补缺 Golang学习中遇到比较好的网站汇总:煎鱼的博客: ://eddycjy.com/ 《 Go语言标准库》(查阅非常方便): : Golang入门教程: : Golang...

    golang 搭建 仿商城后端 静态资源(html,js,images,css,)

    内容概要:golang搭建仿商城后管理系统,静态资源(html,js,images,css,) 适用人群:学习golang语言,同时使用 gin框架搭建 仿站后管理系统。ps:同时也是关注我学习笔记的各位同行者。 使用场景:搭建仿商城...

    golang常用库之gorilla/mux-http路由库使用详解

    golang常用库:配置文件解析库-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 一:golang自带路由介绍 golang自带路由库 http.ServerMux ,实际上是一个 map[string]Handler,是请求的url路径和该url...

    Golang工具库:正在加紧收集工具,包括爬虫工具库,网络工具库,文件工具库,数据库工具如mysql,redis,m.zip

    在Golang的世界里,开发人员经常利用各种工具库来提高代码效率和质量。这些工具库涵盖了广泛的功能领域,从网络编程到数据处理,再到数据库操作。以下是对标题和描述中提及的一些关键知识点的详细说明: 1. **...

Global site tag (gtag.js) - Google Analytics