go语言—爬虫
- 用到的包:
net/http
(用于发送请求), io/ioutil
(用于读取响应内容); - 基本步骤:
- 构建请求
url
, string
类型; - 使用
net/http
包提供的Get()
方法发送请求, 获取响应对象response
; - 处理异常,解析响应内容;
- 进阶步骤(适用于有反爬机制的网站):
- 构建请求
url
,string
类型; - 使用
net/http
包提供的Client{}
结构体构建client
; - 使用
net/http
包提供的NewRequest()
方法构建请求对象request
; - 为
request
对象的Header
添加必要的头部属性; - 调用
client
对象的Do()
方法,并传递参数request
,即可得到响应response
; - 处理异常,解析响应内容;
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
testUrl := "http://www.ylzsxx.com/2_2787/"
client := &http.Client{}
request, err := http.NewRequest("GET", testUrl, nil)
if err != nil {
fmt.Println("构建请求对象出错")
return
}
request.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36")
request.Header.Add("Cookie", "clickbids=2787")
resp, e := client.Do(request)
if e != nil {
fmt.Println("请求出错")
return
}
content, _ := ioutil.ReadAll(resp.Body)
defer resp.Body.Close()
fmt.Println(string(content))
}