公司注册网站建设,o2o电子商务网站建设,深圳网站 商城制作,网站建设技术哪个好用Python Playwright调试时#xff0c;发现不用无头浏览器#xff08;即headlessFalse#xff09;代码能够运行成功#xff0c;但是一用无头浏览器时#xff08;即headlessTrue#xff09;就会报错#xff0c;提示找不到元素。换成Firefox浏览器又不会有这个问题#…用Python Playwright调试时发现不用无头浏览器即headlessFalse代码能够运行成功但是一用无头浏览器时即headlessTrue就会报错提示找不到元素。换成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
随后参考以下示例添加浏览器启动参数即可
def run(playwright: Playwright) - None:browser playwright.chromium.launch(headlessTrue, args[--user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36])