如何在golang中有效地存储对文件的html响应

L.f*_*ole 1 web-crawler httprequest go

我正在尝试在 Golang 中构建一个爬虫。我正在使用net/http库从 url 下载 html 文件。我正在尝试保存http.resp并保存http.Header到文件中。

如何将这两个文件从各自的格式转换为字符串,以便将其写入文本文件。

我还看到了之前关于解析存储的 html 响应文件的问题。 在 Go 中解析来自文本文件的 HTTP 请求和响应。有没有办法以这种格式保存 url 响应。

slc*_*dan 5

Go 有一个带有响应转储的 httputil 包。 https://golang.org/pkg/net/http/httputil/#DumpResponse。响应转储的第二个参数是是否包含正文的布尔值。因此,如果您只想将标题保存到文件中,请将其设置为 false。

将响应转储到文件的示例函数可能是:

import (
    "io/ioutil"
    "net/http"
    "net/http/httputil"
)

func dumpResponse(resp *http.Response, filename string) error {
    dump, err := httputil.DumpResponse(resp, true)
    if err != nil {
        return err
    }

    return ioutil.WriteFile(filename, dump, 0644)
}
Run Code Online (Sandbox Code Playgroud)