Skip to content

增强golang请求库规避功能,imroc/req实现了伪造浏览器指纹、ja3 指纹等,可以考虑切换到这个库 #114

@irony0egoist

Description

@irony0egoist

req请求库 实现了伪造浏览器指纹(包括ja3 指纹)、多代理切换、debug便捷,模拟指纹直接增强爬虫能力,多种特性对可以增强扫描器规避能力

支持的指纹类型

方法列表:

SetTLSFingerprintChrome: 模拟 Chrome 浏览器指纹。
SetTLSFingerprintFirefox: 模拟 Firefox 浏览器指纹。
SetTLSFingerprintEdge: 模拟 Edge 浏览器指纹。
SetTLSFingerprintQQ: 模拟 QQ 浏览器指纹。
SetTLSFingerprintSafari: 模拟 Safari 浏览器指纹。
SetTLSFingerprint360: 模拟 360 浏览器指纹。
SetTLSFingerprintIOS: 模拟 IOS 指纹。
SetTLSFingerprintAndroid: 模拟 Android 指纹。
SetTLSFingerprintRandomized: 随机模拟指纹。

下面是官方的文档内容

伪装 HTTP 指纹?

我们如何伪装客户端的 HTTP 指纹,才能骗过服务端呢?

HTTP 指纹是由一系列特征构成的,服务端检查的特征越详细(反爬级别越高),伪装的难度就越高,当然如果我们把所有特征全都伪装了,那就一定就能骗过服务端了。

常见的一些特征:

User-Agent 的值。
Header 及其排列顺序。
TLS 指纹,也就是TLS 握手时,客户端发送 ClientHello 的特征。包含客户端所支持的加密套件列表及其排列顺序、客户端支持的TLS版本、压缩方式、TLS extensions 列表及其排列顺序等。
对于 HTTP2,还有更多额外可以检查的特征:

HTTP2 settings 帧中的值列表及其排列顺序。
HTTP2 WINDOW_UPDATE 帧的值。
HTTP2 Priority 帧列表及其排列顺序。
伪头(Pseudo-Header) 的顺序。
请求头及其排列顺序,以及 header 帧中 flag 与 priority 选项的值。
以上所有特征,在 req 中都可以轻松模拟,实现伪装成任何想要的浏览器客户端。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions