Releases: wetrycode/tegenaria
v0.5.0
v0.5.0 (2023-03-23)
Refactor
- 拆分引擎组件,抽离独立的组件接口,提供自定义组件的能力
- 移除定时轮询接口
- 优化引擎内部对单个请求进行调度的流程
- 移除
Context全局管理器,在引擎端引入context计数器 - 移除
Request和Context对象内存池,解决多协程场景下Request复用错误的问题 Request对象的Parser类型由func(resp *Context, req chan<- *Context) error方法改为string方便对Request对象进行序列化- 优化爬虫停止判断策略,增加组件接口判断逻辑,允许用户自定义爬虫终止逻辑
Features
-
新增分布式抓取组件,提供分布式部署和抓取的能力
-
新增gRPC和http接口,提供实时远程控和查询制爬虫状态的能力
-
引擎内部新增一个运行时的状态管理器,用于控制爬虫的启停
-
Request对象新增一个DoNotFilter字段,支持Request粒度下的去重控制 -
Request对象新增方法ToMap() (map[string]interface{}, error),用于将Request对象进行序列化 -
Request对象新增方法RequestFromMap(src map[string]interface{}, opts ...RequestOption) *Request,用于将map[string]interface{}对象进行反序列化为Request对象 -
Request新增初始化选项RequestWithPostForm(payload url.Values) RequestOption用于接收application/x-www-form-urlencoded参数 -
Request新增初始化选项RequestWithBodyReader(body io.Reader) RequestOption用于从内存读取二进制数据 -
Request新增初始化选项RRequestWithDoNotFilter(doNotFilter bool) RequestOption用于控制Request对象是否参与去重 -
Response新增一个接口WriteTo(writer io.Writer) (int64, error),允许用户将response写入自定义的io.Writer,例如一个本地文件io实例,实现文件下载 -
新增
ComponentInterface组件接口,允许用户自定义组件 -
新增
DistributedWorkerInterface分布式节点控制接口允许用户实现自定义对节点的控制逻辑
Style
-
重命名
Request和Response的Header为Headers -
重命名
CacheInterface接口的所有方法以大写字母开头
v0.4.6
v0.4.5
Release v0.3.0
fix:add retract
Release v0.1.3
Undo the wrong version number
Release v0.1.2-fix
fix version error
v0.1.2
v0.1.1
Release v0.1.0
BUGFIX
- fix request body Fingerprint error
DOCS
- Add docs