问题场景

准备在读取一个网络地址,获取页面的html标签结构和内容。找到一些方法,是通过读取```http.Get(testUrl) ``` resp *Response 的内容```resp.Body ```再使用```net/html```库进行读取分析。第一次获取title 标签,第二次获取某个a 标签,但是第二次无法读到资源。

原因

猜测指针在遍历时指向了结束,或许在一次读写后关闭了资源。
实际上要追根溯源 resp.Body 的Body 是```Body io.ReadCloser``` 而ReadCloser是一个接口 
```js
// ReadCloser is the interface that groups the basic Read and Close methods.
type ReadCloser interface {
    Reader
    Closer
}
```

解决

通过"io/ioutil" 读取后创建多个副本来进行读取
```js
func main(){
        resp, err := http.Get(testUrl)
        if err != nil {
            fmt.Println("errr--------")
        }
        defer resp.Body.Close()

        b, err := ioutil.ReadAll(resp.Body)
        //读取
        if err !=nil{
            panic(err)
        }
        //创建一个
        reader := bytes.NewReader(b)
        //创建第二个
        readerTitle := bytes.NewReader(b)
        videoSrc  = alink.href(reader)
        title = alink.Title(readerTitle)
        ...
        }
```