- import (
- "errors"
- "fmt"
- "io/ioutil"
- "net/http"
- )
- func ReqGet(url string, q map[string]string) ([]byte, error) {
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- return nil, err
- }
- // set header
- req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36")
- // Set parameters
- if q != nil {
- query := req.URL.Query()
- for k, v := range q {
- query.Add(k, v)
- }
- req.URL.RawQuery = query.Encode()
- }
- // request
- client := &http.Client{}
- resp, err := client.Do(req)
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- if resp.StatusCode != 200 {
- return nil, errors.New(fmt.Sprintf("status code:%d", resp.StatusCode))
- }
- data, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return nil, err
- }
- return data, nil
- }
https://pastebin.com/sThc0e8A
별로인듯 한데 그냥 써야지
아까 goquery 랑 엮어서 스크래핑 할꺼야
Go가 낳아여 러스트가 낳아여?
goquery에 그냥 url만 넣으면 이런 과정 다 포함해서 바로 Document 뱉어주는 함수 있을거야
그러게 있드라고 query스트링은 그냥 내가 만들면 되니까 괜히 힘만 썻넹 - dc App
https://godoc.org/github.com/PuerkitoBio/goquery#NewDocument