admin 管理员组

文章数量: 1184232

用Python + Playwright调试时,发现不用无头浏览器(即headless=False)代码能够运行成功,但是一用无头浏览器时(即headless=True)就会报错,提示找不到元素。

排错方法

插入以下代码,在找不到元素的那个地方前面截一张图,看看那个找不到的元素在截图中是存在还是不存在

page.screenshot(path="screenshot.png")

如果是白屏的话,大概率是被反爬了

原因一:页面有反爬手段

①user-agent反爬

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

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

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

本文标签: 找不到 无头 元素 浏览器 python