Documentation
¶
Index ¶
- func GetTimeStamp(date string) int64
- func IsValidHttpUrl(url string) bool
- func ParseBool(str string) bool
- func ParseFloat64(str string) float64
- func ParseInt(str string) int
- func ParseInt64(str string) int64
- func StrToByteSize(text string) int64
- func WeakDecode(input, output interface{}) error
- type Config
- type ConfigReader
- type Field
- type Filter
- type List
- type RequestDefinition
- type RequestInfo
- type RequestSiteParams
- type Result
- type ResultFunc
- type SiteAdaptor
- func (sa *SiteAdaptor) Data(requestSiteParams RequestSiteParams, output any, fn ResultFunc) error
- func (sa *SiteAdaptor) Json(requestSiteParams RequestSiteParams, output interface{}) error
- func (sa *SiteAdaptor) List(requestSiteParams RequestSiteParams, output any, fn ResultFunc) error
- func (sa *SiteAdaptor) Raw(requestSiteParams RequestSiteParams, fn ResultFunc) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsValidHttpUrl ¶
func ParseFloat64 ¶
func ParseInt64 ¶
func WeakDecode ¶
func WeakDecode(input, output interface{}) error
WeakDecode 自定义 weakDecode 函数,转换 string 为其他类型,取决于 struct 定义的类型。
Types ¶
type Config ¶
type Config struct {
ID string `mapstructure:"id"` // 站点 ID
Name string `mapstructure:"name"` // 站点名称
Domain string `mapstructure:"domain"` // 域名
Api string `mapstructure:"api"` // api 地址
RequestDefinitions map[string]RequestDefinition `mapstructure:"requests"` // 请求定义
CommonFields map[string]map[string]Field `mapstructure:"common_fields"` // 公共字段定义
}
Config 站点配置
type ConfigReader ¶
type ConfigReader struct {
// contains filtered or unexported fields
}
func NewConfigReader ¶
func NewConfigReader(data []byte) *ConfigReader
func (*ConfigReader) Read ¶
func (c *ConfigReader) Read() (*Config, error)
type Field ¶
type Field struct {
Name string // 不需要填写
List *List `mapstructure:"list,optional"` // 列表数据配置
Selector string `mapstructure:"selector"` // 选择器表达式,不同解析类型有不同的表达式
Selection string `mapstructure:"selection"` // 选择器文本类型,见:FieldSelection
Attribute string `mapstructure:"attribute"` // 用于 HTML 解析
Filters []Filter `mapstructure:"filters"` // 过滤器,链式处理
Parent bool `mapstructure:"parent"` // 是否选择父元素
ChildrenRemove string `mapstructure:"remove"` // 用于 HTML 解析,移除指定元素的子元素
Any []Field `mapstructure:"any"` // 数组任意匹配,直到匹配成功
Array bool `mapstructure:"array"` // 是否为数组
Fields map[string]Field `mapstructure:"fields"` // 字段嵌套,意味着可以多层解析
FieldsRef string `mapstructure:"fields_ref"` // 字段嵌套引用 CommonFields
}
Field 站点请求字段定义
type RequestDefinition ¶
type RequestDefinition struct {
Parser string `mapstructure:"parser"` // 解析器,见:requestParser
Method string `mapstructure:"method"` // 请求方法
Path string `mapstructure:"path"` // 相对路径
UseApi bool `mapstructure:"use_api"` // 使用 api
Chrome bool `mapstructure:"chrome"` // 使用 chrome
Headers map[string]string `mapstructure:"headers"` // 请求头
RequiredHeaders []string `mapstructure:"required_headers"` // 必填请求头
Params url.Values `mapstructure:"params"` // 请求参数
FormData url.Values `mapstructure:"form_data"` // 表单数据
SuccessStatusCodes []int `mapstructure:"success_status_codes"` // 成功状态码
List *List `mapstructure:"list,optional"` // 列表数据配置
Fields map[string]Field `mapstructure:"fields"` // 字段定义
FieldsRef string `mapstructure:"fields_ref"` // 引用 CommonFields
DisabledExtends struct {
Path bool `mapstructure:"path"`
Headers bool `mapstructure:"headers"`
RequiredHeaders bool `mapstructure:"required_headers"`
Params bool `mapstructure:"params"`
FormData bool `mapstructure:"form_data"`
SuccessStatusCodes bool `mapstructure:"success_status_codes"`
List bool `mapstructure:"list"`
Fields bool `mapstructure:"fields"`
Field bool `mapstructure:"field"`
} `mapstructure:"disabled_extends"` // 禁用继承
}
RequestDefinition 站点请求定义 RequestDefinition
type RequestInfo ¶
type RequestSiteParams ¶
type RequestSiteParams struct {
ReqId string // 请求 id
Rd *RequestDefinition // 自定义 rd
Domain string // 自定义 domain
Api string // 自定义 api
Path string // 自定义 path
Headers map[string]string // 请求头
Params url.Values // url 请求参数
FormData url.Values // form-data 请求参数
Body map[string]any // 请求体
Env map[string]string // 环境变量
UA string // 用户代理
Cookie string // cookie
SiteData []byte // 站点数据, 直接解析不再请求站点
}
RequestSiteParams 站点请求参数
type Result ¶ added in v1.0.2
type Result struct {
NextPage string
Raw []byte
RequestInfo
}
type ResultFunc ¶ added in v1.0.2
type ResultFunc func(result Result)
type SiteAdaptor ¶
type SiteAdaptor struct {
// contains filtered or unexported fields
}
func NewSiteAdaptor ¶
func NewSiteAdaptor(sc Config) *SiteAdaptor
func (*SiteAdaptor) Data ¶
func (sa *SiteAdaptor) Data(requestSiteParams RequestSiteParams, output any, fn ResultFunc) error
Data 获取对象数据
func (*SiteAdaptor) Json ¶
func (sa *SiteAdaptor) Json(requestSiteParams RequestSiteParams, output interface{}) error
Json 直接 JSON 转 Struct
func (*SiteAdaptor) List ¶
func (sa *SiteAdaptor) List(requestSiteParams RequestSiteParams, output any, fn ResultFunc) error
List 获取列表数据
func (*SiteAdaptor) Raw ¶
func (sa *SiteAdaptor) Raw(requestSiteParams RequestSiteParams, fn ResultFunc) error
Raw 获取原始数据
Source Files
¶
- append_left_filter.go
- blank_filter.go
- byte_size_filter.go
- case_filter.go
- config.go
- constant_filter.go
- eq_filter.go
- html_parser.go
- json_parser.go
- mapstructure_util.go
- not_blank_filter.go
- parser.go
- query_string_filter.go
- regex_filter.go
- replace_filter.go
- research_filter.go
- site_adapt.go
- site_request.go
- split_filter.go
- string_util.go
- strip_filter.go
- text_filter.go
- timestamp_filter.go
- types.go
- xpath_parser.go
Click to show internal directories.
Click to hide internal directories.