微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

同时优雅地运行100个Selenium脚本

如何解决同时优雅地运行100个Selenium脚本

我已经搜索搜索了,但是似乎找不到我的问题的答案。

我需要同时运行多达100个Selenium脚本,其中每个脚本:

  • 具有自己的唯一代理,以避免网络流量
  • 大约需要30秒才能完成

所有脚本都需要在2分钟内完成,例如如果我从6:00开始运行脚本,则所有脚本应在6:02之前完成。

我看过线程:

  • 问题是,有100个chrome驱动程序线程会占用cpu

我看过多处理

  • 使用多处理程序需要100个脚本

我研究了并发功能

  • 100个脚本还需要很长时间才能使用并发功能

无法同时优雅地运行100个Selenium脚本,或者至少在2分钟内运行它们。

这是示例脚本的样子:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time

def run():
    options = webdriver.ChromeOptions()
    options.add_argument('--headless',)
    self.browser = webdriver.Chrome('chromedriver.exe',options=options)
    self.browser.get('https://www.wikipedia.org/')

    webdriverwait(self.browser,10).until(
        EC.presence_of_element_located((By.ID,"searchInput"))).send_keys('Python',Keys.ENTER)
    time.sleep(3)
    print('Moved To Next Section ')

    webdriverwait(self.browser,10).until(
        EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,"Computing"))).click()
    time.sleep(3)
    print('Moved To Next Section ')

    webdriverwait(self.browser,"People"))).click()
    time.sleep(3)

    print('Moved To Next Section ')
    webdriverwait(self.browser,"Roller coasters"))).click()
    time.sleep(3)

    print('Moved To Next Section ')
    webdriverwait(self.browser,"Vehicles"))).click()
    time.sleep(3)

    print('Moved To Next Section ')
    webdriverwait(self.browser,"Weaponry"))).click()
    time.sleep(100)


run()


 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。