2.2.4 • Published 2 years ago

@baige/request v2.2.4

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

@baige/request

介绍

一个专注于爬虫的网络请求器,后可能会改名为@baige/cjc

软件架构

百分之 90 使用 node 原生的 http 和 https 模块开发,少部分功能调用了第三方库,如请求的数据如果被压缩的话,解压就是调用的第三方库实现的。 还有代理功能也是通过第三方库实现的

安装教程

npm i @baige/request

使用说明

  1. 主体模块的各个参数和方法(Cjc 类)

    名称入参功能
    geturl: string, data: RequestOption|object ,option:RequestOptionget 请求,url:请求路径,data:可以是请求参数也可以是附加参数对象,option:附加参数对象
    注:data 对象中如果有$option:true,则表名 data 是一个附加参数对象(option),如果 data 为 option 的话,真正的请求参数也可写在 option.data 中
    posturl: string, data: RequestOption|object ,option:RequestOptionpost,put,delete 请求 content-type 默认为 json,其他同 get
    puturl: string, data: RequestOption|object ,option:RequestOption同 get
    deleteurl: string, data: RequestOption|object ,option:RequestOption同 get
    uploadurl: string, data: RequestOption|object ,option:RequestOption文件上传方法,data 中的值需要需要对应,{任意 key:文件绝对路径}
    globalHeaders变量可直接赋值全局请求头
    globalTimeout变量可直接赋值全局默认超时时间,单位:秒
    globalCookie变量可直接赋值全局 Cookie 对象
    globalHook变量可直接赋值全局钩子{beforeRequest:请求前调用,afterRequest:请求后调用}
    setGlobalFrequencys:number设置全局频率,单位:秒
    setLocalRegexFrequencyregex: RegExp, s: number设置正则匹配频率:regex:正则,s:频率秒
    setPathFrequencypath: string, s: number设置路径匹配频率:path:路径,s:频率秒
    requestoption:RequestOption请求方法,get、post 等方法最终调用的是这个方法
  2. option(RequestOption 类)参数讲解

    名称功能类型默认值
    url请求路径string空字符
    method请求方式(get、post、put、delete)stringundefined
    headers请求头object空对象
    data请求参数object空对象
    cookieTreecookieTree 树,cookie 的树结构,爬虫利器object空对象
    proxy代理 ,配置后请求将走代理路线{host:string,port:number}undefined
    frequency请求频率,单位秒,请求的间隔时间, 0 为无限制,将不受全局频率等影响numberundefined
    regexFrequency正则频率,如果为 true 则进行正则匹配路径查找频率booleanfalse
    cookiecookie 对象,内部类型,大多数不需要管这个参数classCookie
    timeout超时时间(单位:秒)numberundefined
    parse是否允许解析返回的数据,true:将解析为字符串并根据 content-type 反序列化为对象,false:将只有 buffer 数据booleantrue
    forceDeserialization是否强制反序列化,不考虑 content-type 类型booleanfalse
    repeatDeserialization是否重复反序列化,有的接口可能需要多次反序列化才能变为 objectbooleantrue
    download是否下载booleanfalse
    saveFilePath下载文件的保存路径,可为空将自动生成路径,下载完成将返回文件路径(可选)stringundefined
    saveFileDir下载文件的文件夹(可选)stringundefined
    saveFileName下载文件的名称(可选)stringundefined
    注:saveFilePath 的优先级大于 saveFileDir 和 saveFileName
    original是否不做任何操纵,返回原始的 resbooleanfalse
    logs是否开启日志,开启日志后建调用@baige/logc 的日志工具,打印请求详情booleanfalse
    dataMatching数据匹配,返回的数据将是设置的 key:正则匹配的数据 number 为下标-1 为全部{ key: string: RegExp | RegExp,number }{}
    check数据校验,校验失败将不执行 dataMatchingRegExpundefined
    redirect是否允许自动重定向Booleantrue
    hook请求钩子,beforeRequest(option)请求前,afterRequest(res)请求后{beforeRequest,afterRequest}{}
    hasRequest是否需要返回请求体booleanfalse
    hasResponse是否返回响应体booleanfalse
    hasBuffer是否返回响应数据的 bufferbooleanfalse
    retry请求异常的话重试的次数number3
  3. 返回类型(Response 类)内容讲解

    名称功能类型默认值
    res响应体,原始的响应类http.IncomingMessageundefined
    statusCode响应状态码(200、404...)numberundefined
    headers响应头,内部可能会有 set-cookie 等字段,当然 cookie 都会被封装到 cookieTree 中objectundefined
    cookie截止到此次请求的所有 cookie 信息stringundefined
    cookieTree截止到此次请求的所有 cookie 信息的树形式,可直接构建成 Cookie 对象objectundefined
    data返回的经过解析后的数据anyundefined
    buffer返回的二进制数据bufferundefined
    check校验结果booleantrue
  4. Cookie 类

    名称入参功能
    encapsulationurl:string根据 url 获取这个 url 对应的所有 cookie,注意是获取 url 对应的 cookie,而不是获取 url 的域名对应的所有 cookie
    addurl:string,data:string|IncomingMessage向 Cookie 中添加 cookie
    deleteurl:string删除某个网址下指定 path 的所有 cookie
    emptyurl:string清空 url 路径下的 cookie,从根开始清除
    mergeCookieTreecookie: object合并 cookieTree
    getCookieTree获取 cookie 树

参与贡献

完全独立个人开发

特技

可根据不同的参数设置爬虫所需要的不同功能

2.2.1

2 years ago

2.1.2

2 years ago

2.2.0

2 years ago

2.1.1

2 years ago

2.2.3

2 years ago

2.1.4

2 years ago

2.2.2

2 years ago

2.1.3

2 years ago

2.1.6

2 years ago

2.0.7

2 years ago

2.2.4

2 years ago

2.1.5

2 years ago

2.1.8

2 years ago

2.0.9

2 years ago

2.1.7

2 years ago

2.0.8

2 years ago

2.1.0

2 years ago

2.1.9

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.6

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.3

3 years ago

1.0.0

4 years ago