Skip to content
spider
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
gspider.go
gspider_cookies.go
gspider_getfun.go
gspider_printinfo.go

README.md

欢迎使用gspider 蜘蛛 爬虫 采集

快速采集网页

开始

安装

$ go get -u ...
  "github.com/axgle/mahonia"  //解决编码用
  "github.com/saintfish/chardet" //自动获取编码用 
  "golang.org/x/net/proxy" //设置代理用

  "github.com/ghostljj/gspider"//爬虫包

此包需要使用到上面几个库,请自行go get -u ....
支持http(s)代理,Socks5代理

例子

	var strUrl string
	strUrl = "http://2018.ip138.com/ic.asp"
	ss := gspider.NewSpider()
	{ //设置代理  / Socks5
		// ss.HttpProxyInfo = "http://127.0.0.1:1081" //设置代理

		// ss.Socks5Address = "127.0.0.1:7813" //设置代理Socks5
		// ss.Socks5User = "User"
		// ss.Socks5Pass = "pass"
	}
	{ //设置Cookie
		// ss.SetCookiesAll(strUrl, "NewKey1=NewValue1;NewKey2=NewValue==99=2;")
  }

	strContent, err := ss.Send("GET", strUrl, strUrl, "", nil)
  // 或者用这个	strContent, err := ss.Get(strUrl, strUrl, nil)
	if err != nil {
		fmt.Println("Error=" + err.Error())
	} else {

		fmt.Println()
		fmt.Println()
		fmt.Println()
		fmt.Println()
		fmt.Println(strContent)
		ss.PrintReqHeader("")           //打印 请求 头信息
		ss.PrintReqPostData()           // 打印 请求 PostData
		ss.PrintResHeader("")           //打印 响应 头信息
		ss.PrintResSetCookie()          //打印 响应 头信息SetCookie
		ss.PrintResUrl()                // 打印 响应 最后的Url
		ss.PrintCookies(ss.GetResUrl()) // 获取 响应 最后的Url 的 Cookie
		ss.PrintResStatusCode()         // 打印 响应 状态码

	}

为什么打印些无用的东西给我?
因为,这就是调试信息,仔细看会发现使用函数哈。
打印后慢慢磨控制台,会有惊喜

值得注意的是我单独写出RefererUrl,我个人认为,很多网站模拟的时候。是需要看来源的。特别是高级爬虫的时候。麻烦点是麻烦点,安全稳妥。

可以Post 和 Get 或者Send  最后有个 nil  ,这个是map[string]string 请求头的修改,不修改就是nil
Post 时注意,送给同学们url.QueryEscape 这个函数,用于参数编码,会有用的。Post json请忽略

还有就是可以获取图像Base64字符串,使用GetBase64Image

设置Cookies

    SetCookies(strUrl, "NewKey1=NewValue1;NewKey2=NewValue==99=2;")

清空Cookies

     ResetCookie()

获取Cookies

    Cookies(strUrl)
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.