首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

一个 selenium 开启开发者模式仍然被反爬的问题

  •  
  •   asus10tu · 123 天前 · 2562 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原本普通地用 selenium 打开网站,所有图片都会 400 请求失败的,开启开发者模式后都能正常使用了。

    但是问题来了

    我用鼠标去打开页面中的其他链接,依然可以正常使用,但是用代码去 click 打开链接,网页就 400 错误请求了,用 pyautogui 这个鼠标点击类,也是会这样。我尝试晃动鼠标然后用代码点击还是如此,甚至我换了框架,用 pyppeteer 去操作,依然会这样。

    求大佬一个思路、
    17 回复  |  直到 2019-08-07 17:33:14 +08:00
        1
    spotfg   123 天前
    selenium 爬虫也是可以被检测到的,你可以用 mitmproxy 修改一下 driver
        2
    Abbeyok   123 天前 via Android
    firefox 可以解决
        3
    asus10tu   123 天前
    @spotfg 我在代码里开启了开发者模式 options.add_experimental_option('excludeSwitches', ['enable-automation'])
    理论上检测 driver 之类的都跟正常浏览器一样了
        4
    asus10tu   123 天前
    @Abbeyok firefox 貌似无法开启开发者模式
        5
    DanielGuo   123 天前
    没有遇到过你的问题,我用通过 java 或者 python 调用 selenium 做爬虫的时候,和人手工点击完全一致
        6
    zeroDev   123 天前 via Android
    @asus10tu Firefox 可以用的,你可以试试
        7
    asus10tu   123 天前
    @zeroDev 喔喔,换了 firefox 后还真全部问题都解决了,感谢,想问下是什么原理呢
        8
    spotfg   123 天前
    那你可以试试打开 chrome 远程调试模式。实在不行,那还是乖乖用拦截修改吧
        9
    Leigg   123 天前 via Android
    不要用 click 方法,用 execute_script 方法传入 js 代码点击元素
        10
    asus10tu   123 天前
    @Leigg execute_script 来触发按钮当时也试过了,不行。。
        11
    asus10tu   123 天前
    @spotfg 想问下远程调试模式的用意是?看看别的机子是否正常运行么
        12
    spotfg   123 天前
    @asus10tu 不是,是为了反爬,这样可以隐藏 selenium 指纹信息。在 cmd 下输入
    chrome.exe --remote-debugging-port=9222 --user-data-dir="绝对路径"

    然后添加 chrome_options.add_experimental_option('debuggerAddress','127.0.0.1:9222')
        13
    spotfg   123 天前
    @asus10tu 如果不想太过于改动项目,可以试试这个方法,不行在换浏览器呗
        14
    asus10tu   123 天前
    @spotfg 原来如此,学到了。不过明明这样方法确实是把指纹都隐藏掉了,却还是不行,而且跟没开开发者模式的效果一样,实在不明白。
        15
    lawler   123 天前
    猜测是没查询到鼠标轨迹吧。
        16
    xxxy   122 天前 via Android
    最近在用 puppeteer 写爬虫,不妨发个链接我试试
        17
    LUXiaobo   120 天前
    网站会检测 chrome 的一些属性,比如 navigator.webdriver
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1508 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 17:04 · PVG 01:04 · LAX 09:04 · JFK 12:04
    ♥ Do have faith in what you're doing.