雪重
                Python Developer
                知识 汗水 灵感 机遇
              
              
            
                  2022年3月15日   go
                  
                
                
              像python一样优雅的Go爬虫库
通过对net/http的再一次封装,使得gorequests的语法更接近python requests的写法。
github 地址:https://github.com/sixgad/gorequests
欢迎各位大佬来点小星星,Star
一、安装
go get github.com/sixgad/gorequests
二、Demo
1.get请求
package main
import (
    "fmt"
    "github.com/sixgad/gorequests"
)
func main() {
    resp, err := gorequests.Get("https://www.httpbin.org/get?a=1&b=2")
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(resp.Text())
    // Params
    params := gorequests.Params{"a": "1", "b": "2"}
    res, err := gorequests.Get("https://www.httpbin.org/get", params)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(res.Text())
}
2.post请求
package main
import (
    "fmt"
    "github.com/sixgad/gorequests"
)
func main() {
    // form post
    data := gorequests.Data{
        "name": "xiaobulv",
    }
    resp, _ := gorequests.Post("https://www.httpbin.org/post", data)
    fmt.Println(resp.Text())
    // json post
    jdata := gorequests.Json{"AGE": "131"}
    respb, _ := gorequests.Post("https://www.httpbin.org/post", jdata)
    fmt.Println(respb.Text())
}
3.put delete patch等
package main
import (
    "fmt"
    "github.com/sixgad/gorequests"
)
func main() {
    // put
    putdata := gorequests.Json{"AGE": "131"}
    respp, _ := gorequests.Put("https://www.httpbin.org/put", putdata)
    fmt.Println(respp.Text())
}
4.auth
package main
import (
    "github.com/sixgad/gorequests"
)
func main() {
    respa, _ := gorequests.Get("https://www.httpbin.org/basic-auth/admin/123456", gorequests.Auth{"admin", "123456"})
    println(respa.Text())
}
5.header, cookie, timeout, proxy, json等设置
package main
import (
    "fmt"
    "github.com/sixgad/gorequests"
)
func main() {
    // 设置header
    header := gorequests.Header{"user-agent": "hello"}
    // post 请求参数
    data := gorequests.Data{
        "name": "xiaobulv",
    }
    // 设置cookie
    // 当Header里有Cookie时, 此设置无效
    ck := gorequests.Cookie{"BIDUPSID": "C855441CA6145FBB2741293580"}
    // timeout
    timeout := gorequests.SetTimeout(10)
    // 代理
    // proxy := gorequests.Proxy("http://xxx.ip.com")
    resp, _ := gorequests.Post("https://www.httpbin.org/post", data, header, ck, timeout)
    // content
    fmt.Println(resp.Content())
    // text
    fmt.Println(resp.Text())
    // response.Json
    m := make(map[string]interface{})
    resp.Json(&m)
    fmt.Println(m["headers"])
    c := m["headers"]
    fmt.Println(c.(map[string]interface{})["Host"])
    // 状态码
    fmt.Println(resp.StatusCode)
    // 响应cookie
    fmt.Println(resp.Cookies())
}