代码拉取完成,页面将自动刷新
同步操作将从 andeyalee/surfer 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
// surfer是一款Go语言编写的高并发爬虫下载器,支持 GET/POST/HEAD 方法及 http/https 协议,同时支持固定UserAgent自动保存cookie与随机大量UserAgent禁用cookie两种模式,高度模拟浏览器行为,可实现模拟登录等功能。
package surfer
import (
"net/http"
"os"
"sync"
)
var (
surf Surfer
phantom Surfer
once_surf sync.Once
once_phantom sync.Once
fullTempJsFilePrefix = "./tmp/phantomjs"
fullPhantomjsName = os.Getenv("GOPATH") + "/src/github.com/henrylee2cn/surfer/phantomjs/phantomjs"
)
func Download(req Request) (resp *http.Response, err error) {
switch req.GetDownloaderID() {
case SurfID:
once_surf.Do(func() { surf = New() })
resp, err = surf.Download(req)
case PhomtomJsID:
once_phantom.Do(func() { phantom = NewPhantom(fullPhantomjsName, fullTempJsFilePrefix) })
resp, err = phantom.Download(req)
}
return
}
//销毁Phantomjs的js临时文件
func DestroyJsFiles() {
if pt, ok := phantom.(*Phantom); ok {
pt.DestroyJsFiles()
}
}
// Downloader represents an core of HTTP web browser for crawler.
type Surfer interface {
// GET @param url string, header http.Header, cookies []*http.Cookie
// HEAD @param url string, header http.Header, cookies []*http.Cookie
// POST PostForm @param url, referer string, values url.Values, header http.Header, cookies []*http.Cookie
// POST-M PostMultipart @param url, referer string, values url.Values, header http.Header, cookies []*http.Cookie
Download(Request) (resp *http.Response, err error)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。