首頁 >後端開發 >Golang >golang寫爬蟲亂碼怎麼辦

golang寫爬蟲亂碼怎麼辦

angryTom
angryTom原創
2020-02-15 09:52:403455瀏覽

golang寫爬蟲亂碼怎麼辦

golang寫爬蟲亂碼怎麼辦

#在用golang寫爬蟲程式時,會碰觸編碼格式gb2312的頁面。

網頁頁面上可以看出該頁面字元編碼為gb2312

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

而golang預設是支援UTF-8編碼格式的,這樣直接爬下來的結果會亂碼。

解決方法:

使用github.com/axgle/mahonia 這個套件可以完成編碼轉換、

1、執行  go get github.com/axgle/mahonia 指令下載此套件後,在%gopath%/src目錄下會生產

github.com\axgle\mahonia

2、程式碼使用方法

# 1)導入套件

import "github.com/axgle/mahonia"

2)轉換函數

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
}

3)在需要字串轉換編碼的位置呼叫此函數

result = ConvertToString(html, "gbk", "utf-8")

更多golang知識請關注PHP中文網golang教程欄位。

以上是golang寫爬蟲亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn