Python + Playwright 无头浏览器Chrome找不到元素

这篇具有很好参考价值的文章主要介绍了Python + Playwright 无头浏览器Chrome找不到元素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用Python + Playwright调试时,发现不用无头浏览器(即headless=False)代码能够运行成功,但是一用无头浏览器时(即headless=True)就会报错,提示找不到元素。换成Firefox浏览器又不会有这个问题,有可能是因为网站有一个前段反爬虫手段。(同理,如果大家使用playwright codegen时遇到机器人检测的网站过不去的,也可以尝试加上-b firefox参数去指定使用Firefox浏览器去录制脚本,亲测对一些机器人检测的网站友好很多)

其中一种常见的反爬虫手段是通过检测当前user-agent是否为真实浏览器来区分当前请求是否来自真实用户。爬虫使用的常见user-agent类型为:

user-agent为空。没有设置user-agent。
user-agent中包含特殊字符。如:python,java,bot,spider,headless等。

而使用Playwright的Chrome无头浏览器访问网站时,user-agent中会自动添加Headless字段。当网站检测到user-agent包含Headless时判定为非真实请求时,可能会返回空页面,所以导致无头浏览器找不到元素。

因此我们需要添加user-agent来进行浏览器伪装,用浏览器到

https://www.useragentstring.com/index.php

这个网站可以查看当前浏览器使用的User Agent String,例如我的浏览器的User Agent String是Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36

随后参考以下示例,添加浏览器启动参数即可文章来源地址https://www.toymoban.com/news/detail-603168.html

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=True, args=['--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'])

到了这里,关于Python + Playwright 无头浏览器Chrome找不到元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Chrome】使用k8s、docker部署无头浏览器Headless,Java调用示例

    无头浏览器是一种没有图形用户界面的浏览器。无头浏览器不通过其图形用户界面( GUI )控制浏览器的操作,而是使用命令行。 Chrome Headless 用于抓取(谷歌)、测试(开发者)和黑客(黑客)。 搜索引擎,使用它来呈现页面、生成动态内容和索引来自单页 Web 应用程序的数据。 SEO 工

    2024年02月08日
    浏览(44)
  • pycharm + selenium + chromedriver创建Chrome无头浏览器及报错:unknown error: Failed to create Chrome process解决方案

    操作环境 win10 编译环境 pycharm python环境 Python3.9 114以前版本https://registry.npmmirror.com/binary.html?path=chromedriver/ 114以后版本https://googlechromelabs.github.io/chrome-for-testing/ Chrome浏览器下载(这里不多赘述) Chrome浏览器打开,(右上角)设置–(左下角)关于chrome–能看到浏览器版本号

    2024年04月23日
    浏览(57)
  • 找不到和chrome浏览器版本不同的chromedriver的解决方法

    某一天我很久没有chromedriver之后,发现我的google版本是下图这样 打开这个网站下载新版本的chromedriver,我发现没有103.0.5060.114。虽然我不知道为什么没有但是问题总是要解决啊! chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html 于是我下载了103.0.5060.134版本的chrom

    2024年02月11日
    浏览(62)
  • 【vscode设置默认浏览器为google,配置默认浏览器没有google,VS Code 报Windows找不到文件‘chrome‘】

    VS Code 报Windows 找不到‘chrome’ 项目启动ctar+鼠标左键快捷打开并没有使用默认浏览器 并且自己去浏览器配置并提供完整的选项 网上有很多其他的答案不过对我都没有 最后解决是在google里配置 不是默认浏览器会有个按钮 点一下就跳转到系统配置默认浏览器中,选项就可以出

    2024年02月12日
    浏览(58)
  • 『python爬虫』24. selenium之无头浏览器-后台静默运行(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 一般性的selenium会打开浏览器页面,展示图形化页面给我们看,我们都应该知道命令行式的程序肯定比这种渲染图形化界面的程序快速高效。为了一定程度上缓解selenium慢的问题,我们可以采

    2024年02月07日
    浏览(123)
  • 什么是无头浏览器?如何使用Golang实现无头浏览器截图?

    在Web开发中,有时需要对网页进行截图,以便进行页面预览、测试等操作。 而使用无头浏览器来实现截图功能,可以避免手动操作的繁琐和不稳定性。 这篇文章将介绍: 使用Golang进行无头浏览器的截图,轻松实现页面预览、测试和模拟用户操作。 这篇文章发完,有朋友在朋

    2024年02月05日
    浏览(57)
  • 【Python小技巧】Python操控Chrome浏览器实现网页打开、切换、关闭(送独家Chrome操作打包类源码、Chrome浏览器Cookie在哪里?)

    本文将为您展示如何通过Python控制浏览器实现网页的打开、页面的切换和关闭的基本操作,另外对于高阶用户,知道Chrome浏览器Cookie在哪里?可以方便方位Cookie从而实现带登录的更多操作。当然,利用本文方法,你也可以提前登录好,这样就可以直接操作,而免去繁琐的登录

    2024年02月16日
    浏览(61)
  • selenium无头浏览器

    无头浏览器,也是通过selenium操作浏览器,但是浏览器不弹出来的意思 需要用到这个:

    2024年02月11日
    浏览(61)
  • Selenium:设置无头浏览器

    在使用selenium执行测试用例时,每条用例执行过程中都会打开一个浏览器,如果用例数量过多时,每次运行均需要调用一次浏览器,增加了服务器压力,而无头模式就可以解决这种问题,他可以让运行速度更快,占用的资源也更少,让浏览器偷偷的在后台工作。 无头模式,是

    2024年02月16日
    浏览(49)
  • 基于QWebEngine实现无头浏览器

    无头浏览器( Headless Browser )是一种没有图形用户界面(GUI)的浏览器。它通过在内存中渲染页面,然后将结果发送回请求它的用户或程序来实现对网页的访问,而不会在屏幕上显示网页。这种方式使得无头浏览器不仅适用于网络爬虫和测试等自动化任务,而且还能够更安全

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包