Golang 爬虫 GBK 转 UTF-8

抓取百度新闻的时候出现 乱码现象

原因Golang 默认不支持 UTF-8 以外的字符集
解决:将字符串的编码转换成UTF-8

需要用到的库

Python
go get github.com/axgle/mahonia
1
2
go get github . com / axgle / mahonia
 

创建函数

Python
# 常规方式 func ConvertToString(src string, srcCode string, tagCode string) string { srcCoder := mahonia.NewDecoder(srcCode) srcResult := srcCoder.ConvertString(src) tagCoder := mahonia.NewDecoder(tagCode) _, cdata, _ := tagCoder.Translate([]byte(srcResult), true) result := string(cdata) return result } # **这种方式更简洁** func decoderConvert(name string, body string) string { return mahonia.NewDecoder(name).ConvertString(body) }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 常规方式
func ConvertToString ( src string , srcCode string , tagCode string ) string {
     srcCoder : = mahonia . NewDecoder ( srcCode )
     srcResult : = srcCoder . ConvertString ( src )
     tagCoder : = mahonia . NewDecoder ( tagCode )
     _ , cdata , _ : = tagCoder . Translate ( [ ] byte ( srcResult ) , true )
     result : = string ( cdata )
     return result
}
# **这种方式更简洁**
func decoderConvert ( name string , body string ) string {
     return mahonia . NewDecoder ( name ) . ConvertString ( body )
}
 
 

使用函数

Python
func main() { url:= "http://top.baidu.com/news?fr=topbuzz_b4_c2" html := GetHtml(url,"pc") //Println(html) html = ConvertToString(html, "gbk", "utf-8") Println(html) ExtractData(html) //Println(html) }
1
2
3
4
5
6
7
8
9
10
func main ( ) {
     url : = "http://top.baidu.com/news?fr=topbuzz_b4_c2"
     html : = GetHtml ( url , "pc" )
     / / Println ( html )
     html    = ConvertToString ( html , "gbk" , "utf-8" )
     Println ( html )
     ExtractData ( html )
     / / Println ( html )
}
 

效果如下




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值