如果我打算在 python helium 中使用无头浏览器,是否使用新标签或新窗口有关系

问题描述

我正在使用 helium 库来抓取动态网站 我发现使用选项卡比使用许多窗口要快得多,但有些网站当我在新选项卡中打开它们时会显示一些广告,但我找不到关闭它们的方法。这让我找了很多 JS 代码,我不明白,大多数时候在 python 中使用 helium 库执行时它们不起作用,即使它们在 Google Chrome 的控制台中运行良好。

但是,代码应该无头运行,我做这一切只是为了测试,这是我的主要问题 如果我要在 python helium 中使用无头浏览器,使用新标签页还是新窗口有关系吗 它会像正常运行时发生的情况一样更快,还是因为它是无头的所以没有区别?

不要忘记提及,因为我不必使用 JS 代码,所以我可以更轻松地使用多个窗口。

driver.execute_script('''$x('xpath')[0].remove();''')
driver.execute_script('''$x('xpath')[0].click();''')

$x('xpath')[0].remove();
$x('xpath')[0].click();

selenium.common.exceptions.JavascriptException: Message: javascript error: $x is not defined

它们在 Google Chrome 控制台中都运行良好,但由于某种原因,我无法执行它们 python helium。 我尝试使用 time.sleep(5) 来提供更多时间来加载页面,但没有用

更不用说我尝试使用来自氦气的 click() 方法,它给了我一个 LookupError()

解决方法

我找到了一种方法来为自己测试它可能不准确,但结果给了我一个明显的胜利者我使用 Windows 任务管理器查看在所有情况下运行无头选项卡时 CPU 使用率的百分比更快和使用比新窗口少得多的 CPU