想必大家都写过模拟登录,爬取一些需要登录才能使用的资源信息。

以前都是使用Python的requests库来写爬虫,搞模拟登录,今天写写go版本的,供大家参考使用。

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"time"
)

func GetHtml() string {
	url := "https://zhang18.top"
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		log.Fatal("Error reading request. ", err)
	}
	req.Header.Set("Cookie", "")
	req.Header.Set("Host", "zhang18.top")
	req.Header.Set("Referer", "https://zhang18.top")
	req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36")
	client := &http.Client{Timeout: time.Second * 10}
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal("Error reading response. ", err)
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal("Error reading body. ", err)
	}
	return string(body)
}

func main()  {
	html:=GetHtml()
	fmt.Print(html)
}