跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 最近爬虫遇到了一个吊诡的事情:更换 virtualenv 环境会导致反爬
未分類
2020 年 7 月 21 日

最近爬虫遇到了一个吊诡的事情:更换 virtualenv 环境会导致反爬

最近爬虫遇到了一个吊诡的事情:更换 virtualenv 环境会导致反爬

資深大佬 : Te11UA 8

前提:爬取的是亚马逊。爬虫代码不变,俩 virtualenv 都装了一模一样的包,在同一台机子上,用同一个代理。

其中一个环境一直出验证码和 503,但是切换到另外一个环境上却都是正常响应。另外,使用抓包软件看的话,一直出验证码的环境走抓包软件代理后也会正常,但一不用就恢复原状……

使用了最简单的 requests demo 也是一模一样的情况

有没有同学遇到过一样的问题呢? 或者说有什么排查点呢?

PS: 被反爬的环境是一直在运行爬虫代码的,目测可能是有机器学习机制,但是特征点完全找不到在哪,HTTP 层是一模一样的,TCP 层粗略看了下也没什么区别……

大佬有話說 (30)

  • 資深大佬 : zarte

    ip 导致的吧

  • 主 資深大佬 : Te11UA

    @zarte 不是,用同一个 IP,两个 venv 是不一样的结果

  • 資深大佬 : ruanimal

    应该是 requests 版本不一样的,可能改了默认 header 、session 处理等

  • 主 資深大佬 : Te11UA

    @ruanimal 所有依赖包是一模一样的,所以我才有疑问……

  • 資深大佬 : Licsber

    贴一下 pip list 或者 conda list

  • 主 資深大佬 : Te11UA

    ![image.png]( https://i.loli.net/2020/07/14/e6gt32y8FYViPUh.png)
    @Licsber 其实都试过改版本了,木有啥区别

  • 資深大佬 : ungrown

    也就是说唯一的区别是两个环境的“新旧程度”不同?
    那可能还是有什么残留的数据或者配置在捣鬼。
    为控制变量,不妨再新建一个……

  • 資深大佬 : phpfpm

    我建议你把 request 打到你自己的一个网站上比较一下 request 的区别

  • 資深大佬 : rayhy

    在两个环境分别请求一下 http://httpbin.org/anything 看看结果有啥不同吧

  • 資深大佬 : smplesugar

    老哥,我也是采集亚马逊和你出现了同样的问题,希望可以探讨一下

  • 資深大佬 : maoxs2

    会不会是这样的。venv1 先访问然后拿到一个 cookie,之后访问都带着 cookie 走。然后测试 venv2 的时候刚开始没带 cookie 然后就直接被 ban 了?

  • 資深大佬 : locoz

    排除法。
    你确定以及肯定你在「用抓包软件」和「没用抓包软件」两种情况下的「两次请求」,IP 都一致吗?有可能只是因为你「忘记设置上级代理」了所以在抓包的时候才会得到一样的结果。
    你确定以及肯定抓包时看到的所有东西都一致吗?比如 SSL/TLS 层那个握手时的「支持的加密套件」甚至是具体的版本号。

    如果两个请求在各方面都是一致的,就不可能有差异…

  • 資深大佬 : tikazyq

    上代码

  • 主 資深大佬 : Te11UA

    @locoz 一致的,上级代理设置成一样的。HTTP 是一样的,SSL 倒是不太清楚呢……

  • 主 資深大佬 : Te11UA

    @locoz 一致的,上级代理设置成一样的。HTTP 是一样的,SSL 倒是不太清楚呢……
    @smplesugar 吼啊,tg 或者啥联系方式可以留一下~
    @maoxs2 并不是,抓包和请求 httpbin 看了,不带 cookie,都正常

  • 主 資深大佬 : Te11UA

    @rayhy 没有不同,一毛一样
    @ungrown 新建一个可能暂时正常,但是运行多了一样扑街

  • 資深大佬 : ungrown

    @Te11UA #16
    那要不,写个脚本,遍历路径,逐文件比较?看看多了什么少了什么改了什么。

  • 資深大佬 : qqqqq9898

    之前做过亚马逊的爬虫 我猜测你的情况是被后台取了设备指纹, 走代理软件会更改你的请求头, 另外我认为, 你一个环境被检测到了, 那么另一个环境也快了.

  • 資深大佬 : locoz

    @Te11UA #14 如果 IP 是一致的,但上了代理之后都能变正常,那么就大概率是 SSL/TLS 层的问题。建议试一下使用 Wireshark 分别抓一下开抓包和没开抓包两种情况下的两个请求包,并仔细对比其中的 SSL/TLS 连接部分。

  • 主 資深大佬 : Te11UA

    @qqqqq9898 请问又什么方向呢,设备指纹是哪个部分,劳烦指教

  • 主 資深大佬 : Te11UA

    @qqqqq9898 如果说是 InterfaceID 和 MAC 地址的话,抓包看都是一模一样的

  • 資深大佬 : smplesugar

    wx base64: bHN6OTU5

  • 主 資深大佬 : Te11UA

    @locoz 敢问用 Python 跑的话,抓包怎么解密 SSL ?只用过浏览器的 SSLKEY

  • 資深大佬 : qqqqq9898

    @Te11UA 包括但不限于 CPU 内存 插件 UA 时区 GPU 分辨率 浏览器指纹 还有于用验证的 metadata 等等, 供你参考

  • 資深大佬 : hushao

    看下某些地方是不是有随机的可能?

  • 資深大佬 : locoz

    @Te11UA #23 emmm ?不需要解密啊,看握手的那部分就好了。
    最近爬虫遇到了一个吊诡的事情:更换 virtualenv 环境会导致反爬

  • 主 資深大佬 : Te11UA

    @qqqqq9898 你说的这些是反爬用到的,用 chromedp 和 selenium 之类的可以操作,但是我想问的是俩 Python 环境之间有什么差别会导致这种现象呢? CPU 内存之类的应该不会有差别吧

  • 資深大佬 : wangritian

    直觉上是某个 http header 引起的,http 版本? keep-alive ?

  • 資深大佬 : qqqqq9898

    @Te11UA 给你一个思考方向 具体的问题只能你自己调试了 我不用 PYTHON 和无头做爬虫 所以你的问题虽然大概是出在这方面 但我没办法给你具体的解决方法

  • 資深大佬 : zhbzhbzhbz

    @rayhy 这个厉害了~

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具