Surfer 是一款Go语言编写的高并发 web 客户端,拥有surf与phantom两种下载内核,高度模拟浏览器行为,可实现模拟登录等功能。
高并发爬虫Pholcus的专用下载器。
- 支持
surf
和phantomjs
两种下载内核 - 支持大量随机的User-Agent
- 支持缓存cookie
- 支持
http
/https
两种协议
package main
import (
"github.com/andeya/surfer"
"io/ioutil"
"log"
)
func main() {
// 默认使用surf内核下载
resp, err := surfer.Download(&surfer.Request{
Url: "http://github.com/andeya/surfer",
})
if err != nil {
log.Fatal(err)
}
b, err := ioutil.ReadAll(resp.Body)
log.Println(string(b), err)
// 指定使用phantomjs内核下载
surfer.SetPhantomJsFilePath("Path to phantomjs.exe")
resp, err = surfer.Download(&surfer.Request{
Url: "http://github.com/andeya",
DownloaderID: 1,
})
if err != nil {
log.Fatal(err)
}
b, err = ioutil.ReadAll(resp.Body)
log.Println(string(b), err)
resp.Body.Close()
surfer.DestroyJsFiles()
}
Surfer 项目采用商业应用友好的Apache License v2.发布