Documentation ¶
Index ¶
- 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 ¶
This section is empty.
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 // 不需要填写 Selector string `mapstructure:"selector"` // 选择器表达式,不同解析类型有不同的表达式 Selection string `mapstructure:"selection"` // 选择器文本类型,见:FieldSelection Attribute string `mapstructure:"attribute"` // 用于 css 选择器解析 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 List *List `mapstructure:"list,optional"` // 列表数据配置 TrimChars bool `mapstructure:"trim_chars"` // 是否去除特殊字符 }
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"` // 表单数据 Body any `mapstructure:"body"` // 请求体 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"` Body bool `mapstructure:"body"` 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 { Ctx context.Context 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 any // 请求体 Env map[string]string // 环境变量 UA string // 用户代理 Cookie string // cookie Proxy string // http proxy SiteData []byte // 站点数据, 直接解析不再请求站点 }
RequestSiteParams 站点请求参数
type Result ¶
type Result struct { NextPage string Raw []byte RequestInfo }
type ResultFunc ¶
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
- 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
- strip_filter.go
- text_filter.go
- timestamp_filter.go
- types.go
- xpath_parser.go
Click to show internal directories.
Click to hide internal directories.