【发布时间】:2020-12-02 12:18:31
【问题描述】:
你能用 chromedriver 并行“获取”多个页面吗?
我正在使用 Python,据我了解 selenium 提供窗口 API,但不允许为新的 driver.get() 操作打开新窗口。尝试在另一个页面正在进行时获取页面对我来说是个问题,尽管我想这可能是我的错误用法。 目前,我正在并行打开多个 chromedriver 会话,这反过来会导致 X 5 次 chrome 进程打开 - 尽管它似乎有效,但它可能会令人生畏。如果在现有会话上调用 driver.get(url)(在检索到上一页之后)可能会在“内部”chrome 进程和膨胀内存中打开额外的选项卡/窗口,我现在只是在徘徊?
【问题讨论】:
-
stackoverflow.com/questions/65088336/…这家伙同时运行多个进程,说不定你会发现什么有趣的地方
-
听起来您做得对...每个浏览器的每个驱动程序都需要一个线程。不确定你是否可以在 python 中使用多线程。
-
不,伙计们/姑娘们,你们都错了。刚刚在下面的答案中发现。可以使用 JS 命令 windows.open() 打开一个窗口,然后在当前页面上使用 driver.get + 通过 selenium window_handlers 进行管理。一个会话 + 一个 chrome 浏览器(通常使用 3~5 个进程)。没有线程没有多处理:-)
标签: selenium selenium-chromedriver