通过 Selenium - Python 在新标签页中打开 url 的最快方法是什么? [英] What is the fastest way to open urls in new tabs via Selenium - Python?

查看:38
本文介绍了通过 Selenium - Python 在新标签页中打开 url 的最快方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个python脚本来打开很多标签

I want to create a python script to open up a lot tabs

import os
import selenium
from selenium import webdriver


driver =webdriver.Chrome('/usr/local/bin/chromedriver')
driver.execute_script("window.open('http://www.msn.com');")
driver.execute_script("window.open('http://www.cnn.com');")
driver.execute_script("window.open('http://www.yahoo.com');")
driver.execute_script("window.open('https://www.apple.com');")
driver.execute_script("window.open('https://www.google.com');")
driver.execute_script("window.open('https://www.stackoverflow.com');")

# driver.quit()

当我跑步时我得到

我现在的方法是最快的吗?

Is what I have right now is the fastest way?

我曾经有过这个

# -*- coding: utf-8 -*-

import os
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver =webdriver.Chrome('/usr/local/bin/chromedriver')

#1
driver.get("http://msn.com")

#2
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.switch_to.window(driver.window_handles[-1])
driver.get("http://cnn.com")

#3
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.switch_to.window(driver.window_handles[-1])
driver.get("http://www.yahoo.com")

#4
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.switch_to.window(driver.window_handles[-1])
driver.get("https://www.apple.com")

#5
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.switch_to.window(driver.window_handles[-1])
driver.get("https://www.google.com")

#6
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
driver.switch_to.window(driver.window_handles[-1])
driver.get("https://www.stackoverflow.com")

它有效,但很痛苦.

我现在从 6 个开始,但我想加载 100 个标签.

I start with 6 now, but I want to load 100 tabs.

另外,我如何摆脱我的第一个奇怪的标签?我什至可以肯定它为什么在那里.

Also, how do I get rid of my first weird looking tab? I am even sure why it is there.

推荐答案

升级 MAC 上的 chromedriver(>2.25)/chrome browser(>55.0) 删除空数据;标签.您可以使用 threadingmultiprocessing 来加快进程.

Upgrade the chromedriver(>2.25)/chrome browser(>55.0) on your MAC to remove the empty data; tab. You can use threading or multiprocessing to speed up the process.

from multiprocessing import Process
import os
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver =webdriver.Chrome('/usr/local/bin/chromedriver')
driver.get("http://msn.com")
def func1():
  print 'launching: MSN'
 driver.execute_script("window.open('http://www.msn.com');")

def func2():
  print 'launching: CNN'
  driver.execute_script("window.open('http://www.cnn.com');")

if __name__ == '__main__':
  p1 = Process(target=func1)
  p1.start()
  p2 = Process(target=func2)
  p2.start()
  p1.join()
  p2.join()

def runInParallel(*fns):
  proc = []
  for fn in fns:
    p = Process(target=fn)
    p.start()
    proc.append(p)
  for p in proc:
    p.join()

runInParallel(func1, func2)

根据您拥有的 CPU 数量、机器的负载、计算机中发生的许多事情的时间会影响线程/进程的启动时间.此外,由于进程在创建后立即启动,因此创建进程的开销也必须以您看到的时间差计算.

Depending on how many CPUs you have, the load of the machine, the timing of many things happening in the computer will have an influence on the time the threads/process start. Also, since the processes are started right after creation, the overhead of creating a process also has to be calculated in the time difference you see.

这篇关于通过 Selenium - Python 在新标签页中打开 url 的最快方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆