So schreiben Sie verstümmelten Crawler-Code in Golang

angryTom
Freigeben: 2020-02-15 09:52:40
Original
3436 Leute haben es durchsucht

So schreiben Sie verstümmelten Crawler-Code in Golang

Was soll ich tun, wenn ich einen Crawler mit verstümmeltem Code in Golang schreibe?

Wenn ich ein Crawler-Programm in Golang schreibe, werden Sie auf Folgendes stoßen eine Seite mit dem Kodierungsformat gb2312.

Aus der Webseite ist ersichtlich, dass die Zeichenkodierung der Seite gb2312

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

ist und Golang standardmäßig das Kodierungsformat UTF-8 unterstützt Das Ergebnis des direkten Kletterns sind verstümmelte Zeichen.

Lösung:

Verwenden Sie dieses Paket, um die Codierungskonvertierung abzuschließen,

1. Führen Sie go get aus github.com/axgle/mahonia Nach dem Befehl zum Herunterladen dieses Pakets wird

github.com\axgle\mahonia
Nach dem Login kopieren
im Verzeichnis

%gopath%/src

erstellt. 2. So verwenden Sie den Code

1) Paket importieren

import "github.com/axgle/mahonia"
Nach dem Login kopieren

2) Konvertierungsfunktion

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
}
Nach dem Login kopieren

3) Rufen Sie diese Funktion auf, wenn eine String-Konvertierungskodierung erforderlich ist

result = ConvertToString(html, "gbk", "utf-8")
Nach dem Login kopieren

Weitere Informationen Golang-Kenntnisse, bitte folgen Sie der Spalte Golang-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonSo schreiben Sie verstümmelten Crawler-Code in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage