What is the fastest way to open urls in new tabs via Selenium - Python?(通过 Selenium - Python 在新选项卡中打开网址的最快方法是什么?)
问题描述
我想创建一个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")
它可以工作,但它很痛苦慢
.
It works but it is painfully slow
.
我现在从 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浏览器(>55.0),去掉空数据;标签.您可以使用 threading
或 multiprocessing
来加快处理速度.
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 在新选项卡中打开网址的最快方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:通过 Selenium - Python 在新选项卡中打开网址的最快方法是什么?
基础教程推荐
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 筛选NumPy数组 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01