一个很奇怪,有意思的接口反爬策略

107 天前
 dearmymy
一个简单的 get 请求,ua ,ip 代理什么都有
使用 request 库请求。
一个 python 进程,连续请求 20 次都没问题,精准 21 次就拒绝。
关键是重启脚本进程,又可以了,还是 21 次精准发现。

现在高度怀疑是不是 request 里对同一个 url 请求 tcp 进行的端口复用?网上找写方法每次起新 http 请求代码都没有效果。
20 次重启一次也是 ok ,主要这种策略第一次见到,感觉是 tcp tls 那边做了手脚。如果可行 也是个不错的反爬策略。

求一些思路。
3265 次点击
所在节点    Python
21 条回复
RaMa291041610
107 天前
zeusho871
107 天前
tls 指纹
dearmymy
107 天前
@RaMa291041610
@zeusho871 感谢彦祖么,第一次遇到这个。。
kdwnil
107 天前
写爬虫遇过这种策略,就是单个 tcp 连接有 http 请求次数限制,解决办法也只能请求次数差不多时起一个新的 http client ,不过我是 golang 不太清楚 python 要怎么做
cowcomic
107 天前
试了一下,同一个 python 脚本,即使重启,request 的 ja3 和 ja4 也是不变的
咋通过这个区分请求进程的呢?
defaw
107 天前
你开 http keep-alive 了?每次都用新的连接试试
cccer
107 天前
你是不是忽略的 cookies
dearmymy
107 天前
@kdwnil 我感觉就是这个问题, 只不过 python request 库可能不好操作,还是复用了 tcp 。奇怪就是重启就可以继续。
dearmymy
107 天前
@cowcomic 感觉不是指纹,现在高度怀疑,http 复用了 tcp 连接。或者哪里没搞明白
dearmymy
107 天前
@defaw 感觉这个问题,网上找半天代码设置都没效果,在找找
dearmymy
107 天前
@cccer 压根没 cookie
xdeng
107 天前
tcp 的序列号?
kdwnil
107 天前
@dearmymy 因为重启时原有的 tcp 连接都断开了,又重新建立了新的连接
jinjiang2024
107 天前
有没有可能与间隔时间有关?
NaclFish
104 天前
楼主解决了吗
dearmymy
104 天前
@NaclFish 没有很奇怪,能精准抓住同一个进程的请求
CC11001100
99 天前
https://github.com/JSREI/tcp-rate-limit-goat

我写了一个类似的 tcp 连接限速的反爬的测试靶场,有兴趣的朋友可以去玩一玩
dearmymy
99 天前
@CC11001100 很厉害,就是我 id 打下码把。。。。
CC11001100
98 天前
@dearmymy #18 啊哈哈不好意思没注意,已经更新图片给 id 打码了 🙈
dearmymy
98 天前
@CC11001100 从你第二个测试结果看,虽然端口不复用了。但是 ip 端口号是依次递增,这个也是很明显的爬虫特征。对于连续端口号依次递增也可以判断爬虫了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1079960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX