【问题标题】:Best way to multiprocessing or call some functions parallel多处理或并行调用某些函数的最佳方法
【发布时间】:2015-12-08 14:58:02
【问题描述】:

我正在开发一个使用 Selenium Webdriver 打开某些 Mozilla Firefox 实例的工具。 有三个实例同时加载相同的页面。 由于使用 Web Driver 加载页面缓慢,我想在所有浏览器中并行加载相关页面。

我今天的代码如下所示:

browser1 = webdriver.Firefox()
browser2 = webdriver.Firefox()
browser3 = webdriver.Firefox()

browser1.get('http://google.com')
browser2.get('http://google.com')
browser3.get('http://google.com')

例如,在该代码中,browser2 将仅在 browser1 完成加载后加载。 我正在寻找一种方法来并行加载所有三个浏览器。

注意 - 我需要全部加入,意思是三个浏览器都加载成功后代码才会继续

谢谢

【问题讨论】:

标签: python selenium multiprocessing


【解决方案1】:

我不确定这是否可行(现在无法检查),但您应该尝试:

from Multiprocessing import Process
def first_browser():
  browser1 = webdriver.Firefox()
  browser1.get('http://google.com')
def second_browser():
  browser2 = webdriver.Firefox()
  browser2.get('http://google.com')
def third_browser():
  browser3 = webdriver.Firefox()
  browser3.get('http://google.com')
p1 = Process(target=first_browser)
p2 = Process(target=second_browser)
p3 = Process(target=third_browser)

【讨论】:

  • 我怎样才能做一个等待所有三个加载的“加入”方法?
  • 等到所有浏览器完成加载Google页面以开始新操作或加载什么?
  • 等待开始新的动作,例如获取所有的page_source
  • 您希望下一个操作在所有浏览器上同时启动(以同步所有浏览器上的操作)还是在页面加载后为每个浏览器启动?
  • 加载后每个浏览器分开。
猜你喜欢
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2021-03-27
  • 2013-03-27
  • 1970-01-01
  • 2010-10-09
  • 2016-07-21
  • 2021-06-15
相关资源
最近更新 更多