V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
dearmymy
V2EX  ›  Python

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

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

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

    求一些思路。
    13 条回复    2024-10-14 10:51:52 +08:00
    RaMa291041610
        1
    RaMa291041610  
       4 小时 6 分钟前   ❤️ 1
    zeusho871
        2
    zeusho871  
       4 小时 5 分钟前 via Android
    tls 指纹
    dearmymy
        3
    dearmymy  
    OP
       4 小时 3 分钟前
    @RaMa291041610
    @zeusho871 感谢彦祖么,第一次遇到这个。。
    kdwnil
        4
    kdwnil  
       3 小时 54 分钟前 via Android
    写爬虫遇过这种策略,就是单个 tcp 连接有 http 请求次数限制,解决办法也只能请求次数差不多时起一个新的 http client ,不过我是 golang 不太清楚 python 要怎么做
    cowcomic
        5
    cowcomic  
       3 小时 54 分钟前
    试了一下,同一个 python 脚本,即使重启,request 的 ja3 和 ja4 也是不变的
    咋通过这个区分请求进程的呢?
    defaw
        6
    defaw  
       3 小时 53 分钟前
    你开 http keep-alive 了?每次都用新的连接试试
    cccer
        7
    cccer  
       3 小时 51 分钟前
    你是不是忽略的 cookies
    dearmymy
        8
    dearmymy  
    OP
       3 小时 37 分钟前
    @kdwnil 我感觉就是这个问题, 只不过 python request 库可能不好操作,还是复用了 tcp 。奇怪就是重启就可以继续。
    dearmymy
        9
    dearmymy  
    OP
       3 小时 36 分钟前
    @cowcomic 感觉不是指纹,现在高度怀疑,http 复用了 tcp 连接。或者哪里没搞明白
    dearmymy
        10
    dearmymy  
    OP
       3 小时 35 分钟前
    @defaw 感觉这个问题,网上找半天代码设置都没效果,在找找
    dearmymy
        11
    dearmymy  
    OP
       3 小时 35 分钟前
    @cccer 压根没 cookie
    xdeng
        12
    xdeng  
       3 小时 34 分钟前
    tcp 的序列号?
    kdwnil
        13
    kdwnil  
       3 小时 22 分钟前
    @dearmymy 因为重启时原有的 tcp 连接都断开了,又重新建立了新的连接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:14 · PVG 14:14 · LAX 23:14 · JFK 02:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.