当前位置: 首页 > news >正文

网站设计与网页配色怎么进wordpress

网站设计与网页配色,怎么进wordpress,自己做的网站 打开了没有图片,鹤壁做网站价格前言 使用Selenium 创建多个浏览器#xff0c;这在自动化操作中非常常见。 而在Python中#xff0c;使用 Selenium threading 或 Selenium ThreadPoolExecutor 都是很好的实现方法。 应用场景#xff1a; 创建多个浏览器用于测试或者数据采集#xff1b;使用Selenium 控… 前言 使用Selenium 创建多个浏览器这在自动化操作中非常常见。 而在Python中使用 Selenium threading 或 Selenium ThreadPoolExecutor 都是很好的实现方法。 应用场景 创建多个浏览器用于测试或者数据采集使用Selenium 控制本地安装的 chrome浏览器 去做一些操作… 文章提供了 Selenium threading 和 Selenium ThreadPoolExecutor 结合的代码模板拿来即用。 知识点 上面两个都是 Python 内置模块无需手动安装~ 导入模块 import threading from concurrent.futures import ThreadPoolExecutor, as_completed 多线程还是线程池 在Selenium中使用 多线程 或者是 线程池差别并不大。主要都是网络I/O的操作。 在使用 ThreadPoolExecutor 的情况下任务将被分配到不同的线程中执行从而提高并发处理能力。与使用 threading 模块相比使用 ThreadPoolExecutor 有以下优势: 更高的并发处理能力线程池 可以动态地调整线程数量以适应任务的数量和处理要求从而提高并发处理能力。更好的性能线程池 可以根据任务的类型和大小动态地调整线程数量从而提高性能和效率。… 总之使用 线程池 可以提高并发处理能力更易于管理并且可以提供更好的性能和效率。 但是选择多线程效果也不差。 所以使用哪个都不必纠结哪个代码量更少就选哪个自然是最好的。 多个浏览器✨ Selenium自动化中需要多个浏览器属于是非常常见的操作了。 不管是用于自动化测试、还是爬虫数据采集这都是个可行的方法。 这里示例的代码中线程池的运行时候只有 多线程 的一半 多线程与 多 浏览器 这份代码的应用场景会广一些后续复用修改一下 browser_thread 函数的逻辑就可以了。 这里模拟相对复杂的操作在创建的浏览器中新打开一个标签页用于访问指定的网站。 然后切换到新打开的标签页进行截图。 代码释义 定义一个名为 start_browser 的函数用于创建 webdriver.Chrome 对象。定义一个名为 browser_thread 的函数接受一个 webdriver.Chrome 对象和一个整数作为参数用于打开指定网页并截图。 切换到最后一个窗口然后截图。main函数创建了5个浏览器5个线程执行上面的操作然后等待所有线程执行完毕。 # -*- coding: utf-8 -*- # Name: multi_thread.py # Author: 小月 # Date: 2023/10/26 20:00 # Description: import threading from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager def start_browser(): service ChromeService(ChromeDriverManager().install()) driver webdriver.Chrome(serviceservice) return driver def browser_thread(driver: webdriver.Chrome, idx: int): url_list [https://www.csdn.net/, https://www.baidu.com, https://music.163.com/, https://y.qq.com/, https://cn.vuejs.org/] try: driver.execute_script(fwindow.open({url_list[idx]})) driver.switch_to.window(driver.window_handles[-1]) driver.save_screenshot(f{idx}.png) return True except Exception: return False def main(): for idx in range(5): driver start_browser() threading.Thread(targetbrowser_thread, args(driver, idx)).start() # 等待所有线程执行完毕 for thread in threading.enumerate(): if thread is not threading.current_thread(): thread.join() if __name__ __main__: main() 运行结果 运行时长在9.28秒速度与网络环境有很大关系木桶效应取决于最后运行完成的浏览器看到程序运行完成后多出了5张截图。 线程池与 多 浏览器 这份代码与 多线程与 多浏览器 的操作基本一致。速度上却比多线程节省了一半。 # -*- coding: utf-8 -*- # Name: demo2.py # Author: 小月 # Date: 2023/10/26 20:00 # Description: from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager from concurrent.futures import ThreadPoolExecutor, as_completed MAX_WORKERS 5 service ChromeService(ChromeDriverManager().install()) def start_browser(): driver webdriver.Chrome(serviceservice) return driver def browser_task(driver: webdriver.Chrome, idx: int): url_list [https://www.csdn.net/, https://www.baidu.com, https://music.163.com/, https://y.qq.com/, https://cn.vuejs.org/] try: driver.execute_script(fwindow.open({url_list[idx]})) driver.switch_to.window(driver.window_handles[-1]) driver.save_screenshot(f{idx}.png) return True except Exception: return False def main(): executor ThreadPoolExecutor(max_workersMAX_WORKERS) ths list() for idx in range(5): driver start_browser() th executor.submit(browser_task, driver, idxidx) ths.append(th) # 获取结果 for future in as_completed(ths): print(future.result()) if __name__ __main__: main() 运行结果 运行时长在4.5秒运行效果图不是很匹配但确实是比多线程快很多。看到程序运行完成后多出了5张截图。 多个标签页 这个的应用场景有点意思。 这里的操作与上面的 多个浏览器其实是差不多的。 区别在于上面打开多个浏览器这里打开多个标签页。 所以这个需要考量一个问题资源争夺。与是这里用上了 threading.Lock 锁用以保护资源线程安全。 多线程与 多 标签页 代码释义 与上面差不多不解释了。 # -*- coding: utf-8 -*- # Name: demo2.py # Author: 小月 # Date: 2023/10/26 20:00 # Description: import threading from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager service ChromeService(ChromeDriverManager().install()) lock threading.Lock() def start_browser(): driver webdriver.Chrome(serviceservice) return driver def browser_thread(driver: webdriver.Chrome, idx: int): url_list [https://www.csdn.net/, https://www.baidu.com, https://music.163.com/, https://y.qq.com/, https://cn.vuejs.org/] try: lock.acquire() driver.execute_script(fwindow.open({url_list[idx]})) driver.switch_to.window(driver.window_handles[idx 1]) driver.save_screenshot(f{idx}.png) return True except Exception: return False finally: lock.release() def main(): driver start_browser() for idx in range(5): threading.Thread(targetbrowser_thread, args(driver, idx)).start() # 等待所有线程执行完毕 for thread in threading.enumerate(): if thread is not threading.current_thread(): thread.join() if __name__ __main__: main() 运行结果 线程池与 多 标签页 这里不展示运行结果了因为效果与 多线程与 多 标签页 一致。 # -*- coding: utf-8 -*- # Name: thread_pool.py # Author: 小月 # Date: 2023/10/26 20:00 # Description: import time import threading from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager from concurrent.futures import ThreadPoolExecutor, as_completed MAX_WORKERS 5 service ChromeService(ChromeDriverManager().install()) lock threading.Lock() def start_browser(): driver webdriver.Chrome(serviceservice) return driver def browser_task(driver: webdriver.Chrome, idx: int): url_list [https://www.csdn.net/, https://www.baidu.com, https://music.163.com/, https://y.qq.com/, https://cn.vuejs.org/] try: lock.acquire() driver.execute_script(fwindow.open({url_list[idx]})) driver.switch_to.window(driver.window_handles[idx 1]) driver.save_screenshot(f{idx}.png) return True except Exception: return False finally: lock.release() def main(): driver start_browser() executor ThreadPoolExecutor(max_workersMAX_WORKERS) ths list() for idx in range(5): th executor.submit(browser_task, driver, idxidx) ths.append(th) # 获取结果 for future in as_completed(ths): print(future.result()) if __name__ __main__: st time.time() main() et time.time() print(et - st) 总结⚡⚡ 本文章介绍了 Selenium threading 和 Selenium ThreadPoolExecutor 来创建多个浏览器或多个标签页的操作。 文中示例的代码比较简单所以 线程池 比 多线程 运行的更加快。 但在实际的使用过程中可以根据自己的喜好去选择 线程池 还是 多线程 。 后话 本次分享到此结束 see you~‍‍
http://www.sczhlp.com/news/160854/

相关文章:

  • 怎么建个自己的网站网站开发技术实验教程
  • html动漫网站模板下载iis能搭WordPress
  • wordpress网站怎么仿网站开发合同属于知识产权类吗
  • 织梦建站要多少钱房门户网站如何做优化
  • 做动态图的网站怎么看网站是不是做竞价
  • AI元人文系列:透明推理者——下一代大模型架构设计
  • 个人随笔
  • 最好的网站统计最新网站开发建设教材
  • 网站设计师培训学校上传文件网站
  • 菏泽网站建设设计si设计公司
  • 兰州网站推广公司莆田市网站建设
  • 福田区住房和建设局官方网站商标设计找哪里
  • 免费建外贸网站wordpress怎么做信息流广告
  • 网站 制作 中心直播视频
  • 网站做微信支付宝支付接口为什么多个网站域名有同个网站备案
  • 有网站源码 怎么做网站科技医疗网站建设
  • 修改网站描述seo做论坛和企业网站差别
  • 手机网站 程序做淘宝网站要会程序吗
  • 沈阳做网站哪家质量好价格低有哪些简单的网站
  • 齐齐哈尔建设局网站首页危险网站怎么办
  • 大型网站建设用什么系统好营销推广的工作内容
  • 青岛专业网站建设价格南昌seo网站建设
  • 公司自己做网站推广多语言版本网站
  • 自己做的网站地址手机怎么打不开企业网站的功能可分为前台和后台两个部分
  • ktv支付订房网站模板个人网页设计模板网站
  • 网页做得好的网站网站备案在哪个部门
  • 做參考資料的网站吴忠网站建设报价
  • 免费的站外推广ps网页设计培训
  • 单位网站维护 网站建设岗位如何查找高权重网站
  • wap网站seo网站建设怎么接单