go 爬虫乱码

作者: 反者道之动001 | 来源:发表于2017-12-09 11:21 被阅读7次

    爬支付宝的账户,发现乱码了

    看了下,看他head头部<meta charset="GBK" />, GBK编码的。

    如果不解析不提取里面的信息,直接修改响应头w.Header().Set("Content-Type", "application/json;charset=GBK")返回的就是正常的了。

    --Tip
    我刚开始是对比控制台"Accept-Encoding", "gzip,deflate",gzip压缩, 是不是浏览器是压缩传输,但是爬虫不是,就是就解压,,,唔, 失败了。。

    回正题
    有一个github.com/axgle/mahonia包,可以实现多种编码
    go get github.com/axgle/mahonia

    Code:

    import (
      "github.com/axgle/mahonia"
    )
    
    // 编码
    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
    }
    
    ...
    
    // 编码转换
    bodystr = ConvertToString(bodystr, "gbk", "utf-8")
    

    相关链接:
    https://github.com/axgle/mahonia
    http://blog.csdn.net/qq_33285730/article/details/73239263

    相关文章

      网友评论

        本文标题:go 爬虫乱码

        本文链接:https://www.haomeiwen.com/subject/atyuixtx.html