golang爬蟲colly 發送post請求

繼續還是工作中使用colly,不管是官網,還是網上的一些文章(其實90%就是把官網的案例抄過去),都是一樣的格式,沒有講到post,測試了幾次,記錄一下post的使用

	c := colly.NewCollector()
	type data struct {
		Phone string `json:"phone" binding:"required"`
	}
	d:=&data{
		Phone:"18190897361",
	}
	da,err:=json.Marshal(d)

	if err!=nil{
		fmt.Println(err)
	}
	c.OnResponse(func(response *colly.Response) {
		fmt.Println(string(response.Body))
	})
	c.OnRequest(func(r *colly.Request) {
		fmt.Println(r)
		fmt.Println(r.Method)
		r.Headers.Set("Content-Type", "application/json;charset=UTF-8")
		r.Headers.Set("User-Agent","Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36")
	})
	c.OnError(func(response *colly.Response, e error) {
		fmt.Println(e)
	})
	c.PostRaw("http://www.××××.com:×××/baseDevice/getUserInfo",da)
	//c.Visit("http://www.××××.com:×××/baseDevice/getUserInfo")

其實也沒多少不一樣,首先準備你要發送的json格式的數據(現在90%都是json格式請求了),

type data struct {
		Phone string `json:"phone" binding:"required"`
	}
	d:=&data{
		Phone:"18190897361",
	}
	da,err:=json.Marshal(d)

這裏只發送一個電話號碼,第二部就是最後的發送了

c.PostRaw("http://www.××××.com:×××/baseDevice/getUserInfo",da)

1:這句話一定要寫到最後
2:

c.Visit(“http://www.××××.com:×××/baseDevice/getUserInfo”)

Visit方法,點進去源碼可以看到默認走的是get模式,我們這裏發送post,就不需要寫了
就這麼簡單—結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章