Documentation ¶
Index ¶
- Variables
- func GetAgent(agentType UserAgentType) string
- func NewGoquery(html string) (*goquery.Document, error)
- func StartJob()
- func StartJobGet(jobNumber int, queue TodoQueue, vs ...interface{})
- func StartJobPost()
- func StringValue(i interface{}) string
- type Context
- func Get(url string, vs ...interface{}) (*Context, error)
- func Post(url string, data []byte, contentType string, vs ...interface{}) (*Context, error)
- func PostJson(url string, jsonStr string, vs ...interface{}) (*Context, error)
- func Req(request *http.Request, vs ...interface{}) (*Context, error)
- func Request(url, method string, data []byte, contentType string, vs ...interface{}) (*Context, error)
- type EndFunc
- type FailedFunc
- type Mysql
- func (m *Mysql) Conn() (err error)
- func (m *Mysql) Describe(table string) (map[string]string, error)
- func (m *Mysql) Insert(table string, fieldData map[string]interface{}) error
- func (m *Mysql) NewTable(table string, fields map[string]string) error
- func (m *Mysql) Select(sql string) ([]map[string]string, error)
- type Queue
- type ReqTimeOut
- type ReqTimeOutMs
- type ReqUrl
- type RetryFunc
- type RetryTimes
- type StartFunc
- type StressUrl
- type SucceedFunc
- type TableInfo
- type Task
- type TodoQueue
- type UserAgentType
Constants ¶
This section is empty.
Variables ¶
View Source
var StatusCodeMap map[int]string = map[int]string{
200: "success",
201: "success",
202: "success",
203: "success",
204: "fail",
300: "success",
301: "success",
302: "success",
400: "fail",
401: "retry",
402: "retry",
403: "retry",
404: "fail",
405: "retry",
406: "retry",
407: "retry",
408: "retry",
500: "fail",
501: "fail",
502: "retry",
503: "retry",
504: "retry",
}
StatusCodeMap 状态码处理映射 success 该状态码对应执行成功函数 fail 该状态码对应执行失败函数 retry 该状态码对应需要重试前执行的函数
View Source
var (
UrlBad error = errors.New("url is bad.") // 错误的url
)
View Source
var UserAgentMap map[int]string = map[int]string{
1: "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0",
2: "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36",
3: "Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)",
4: "Opera/9.80 (Windows NT 6.1; WOW64; U; en) Presto/2.10.229 Version/11.62",
5: "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",
6: "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0",
7: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/27.0.1453.93 Chrome/27.0.1453.93 Safari/537.36",
8: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",
9: "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.9.168 Version/11.52",
10: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36",
11: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0",
12: "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19",
13: "Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
14: "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
15: "Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0",
16: "Mozilla/5.0 (Android; Tablet; rv:14.0) Gecko/14.0 Firefox/14.0",
17: "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19",
18: "Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19",
19: "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
20: "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
21: "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
22: "Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
23: "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/27.0.1453.10 Mobile/10B350 Safari/8536.25",
24: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)",
25: "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)",
26: "User-Agent, UCWEB7.0.2.37/28/999",
27: "User-Agent, NOKIA5700/ UCWEB7.0.2.37/28/999",
28: "User-Agent, Openwave/ UCWEB7.0.2.37/28/999",
29: "User-Agent, Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",
30: "Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12",
31: "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)",
32: "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)",
33: "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0",
34: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)",
35: "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201",
}
Functions ¶
func GetAgent ¶ added in v0.0.4
func GetAgent(agentType UserAgentType) string
GetAgent 随机获取那种类型的 user-agent
func StartJobGet ¶ added in v0.0.7
StartJobGet 并发执行Get,直到队列任务为空 @jobNumber 并发数, @queue 全局队列, @client 单个并发任务的client, @SucceedFunc 成功方法, @ RetryFunc重试方法, @FailedFunc 失败方法
Types ¶
type Context ¶ added in v0.0.7
type Context struct { // Token Token string // client Client *http.Client // Request Req *http.Request // Response Resp *http.Response // Error Err error // 最大允许重试次数 MaxTimes RetryTimes // 请求成功了需要处理的事件 SucceedFunc SucceedFunc // 请求失败了需要做的事 FailedFunc FailedFunc // 请求状态码设置了重试,在重试前的事件 RetryFunc RetryFunc // 请求开始前的方法 StartFunc StartFunc // 请求完成后的方法 EndFunc EndFunc // 本次请求的任务 Task *Task RespBody []byte // job 编号 JobNumber int // 请求的响应时间 单位ms Ms time.Duration // contains filtered or unexported fields }
请求上下文
func Req ¶
Req 初始化请求 @url 请求链接 @maxTimes 重试次数 @sf 请求成功后做的事情, 200等 @ff 请求失败后做的事情, 403等,502等 @vs 可变参数 @vs UserAgentType 设置指定类型 user agent 如 AndroidAgent
func Request ¶ added in v0.0.7
func Request(url, method string, data []byte, contentType string, vs ...interface{}) (*Context, error)
Request 请求
func (*Context) SetFailedFunc ¶ added in v0.0.7
SetFailed 设置错误后的方法
func (*Context) SetRetryFunc ¶ added in v0.0.7
SetRetryFunc 设置重试,在重试前的方法
func (*Context) SetRetryTimes ¶ added in v0.0.7
SetRetryTimes 设置重试次数
func (*Context) SetSucceedFunc ¶ added in v0.0.7
SetSucceedFunc 设置成功后的方法
type Mysql ¶ added in v0.0.9
type Mysql struct { Host string Port int User string Password string DataBase string MaxOpenConn int MaxIdleConn int DB *sql.DB }
type ReqTimeOut ¶ added in v0.0.7
type ReqTimeOut int
type ReqTimeOutMs ¶ added in v0.0.7
type ReqTimeOutMs int
type StressUrl ¶ added in v0.0.7
type StressUrl struct { Url string Method string Sum int64 Total int TQueue TodoQueue // contains filtered or unexported fields }
StressUrl 压力测试一个url
func NewTestUrl ¶ added in v0.0.7
NewTestUrl 实例化一个新的url压测
type TableInfo ¶ added in v0.0.9
type TableInfo struct { Field string Type string Null string Key string Default interface{} Extra string }
表信息
type TodoQueue ¶ added in v0.0.4
type UserAgentType ¶ added in v0.0.4
type UserAgentType int
const ( PCAgent UserAgentType = iota + 1 WindowsAgent LinuxAgent MacAgent AndroidAgent IosAgent PhoneAgent WindowsPhoneAgent UCAgent )
Source Files ¶
Click to show internal directories.
Click to hide internal directories.