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

seo代理公司是真的吗seo推广是什么

seo代理公司是真的吗,seo推广是什么,杭州建设网站公司,郓城网站建设前言 在前面编写一个Selenium的自动化程序时候,发现一个问题。 因笔记本配置较为差,所以每次初始化Selenium的WebDriver都会非常慢,整个等待过程是不友好的。 所以我就想到: 在程序中初始化一个全局的WebDriver对象&#xff0c…

在这里插入图片描述

前言

在前面编写一个Selenium的自动化程序时候,发现一个问题。

因笔记本配置较为差,所以每次初始化SeleniumWebDriver都会非常慢,整个等待过程是不友好的。

所以我就想到:

  • 在程序中初始化一个全局的WebDriver对象,在程序结束之后不退出Selenium打开的浏览器。

    这样就只需要启动一次Selenium打开的浏览器,后面都使用这个浏览器。

这样的确是个好主意,但随之而来的问题是:

  • ?万一Selenium打开的浏览器被系统回收或者出现异常了,那么程序运行就会出错!

所以在最终,整个问题解决的思路如下:

  1. 程序运行前先检测指定的 Selenium浏览器(系统进程)是否存在;
  2. 如果存在则往后运行程序;
  3. 如果不存在则先打开Selenium浏览器,再往后运行程序。

文章的标题虽然为 Python psutil:系统进程管理与Selenium效率提升的完美结合,但是应用场景却是很广的,譬如系统监控、系统监控、性能分析、限制系统资源、管理进程。

本文主要借助于 Pythonpsutil模块来实现,所以下面更多的是介绍 psutil模块的使用。

当然,重要的并不是使用什么工具,而是怎么使用工具,以及工具能帮助我们解决哪些问题。

知识点

模块解释
psutil用于在 Python 中检索有关运行进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。

具体的介绍看下图:

psutil(python system and process utilities)是一个跨平台库,用于访问操作系统的进程和系统利用率(CPU、内存、磁盘、网络等)。它主要用于系统监控,分析和限制系统资源,以及管理运行的进程。它实现了Unix命令行工具提供的许多功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。

在这里插入图片描述




应用场景

在使用selenium进行自动化测试时,每次开启和销毁浏览器窗口都会消耗系统资源。使用psutil来监控selenium的浏览器窗口。如果检测到窗口已经存在,就可以复用这个窗口,而不是每次都创建新的窗口。这样可以节省消耗系统资源。

psutil还可以用于多种场景,包括系统监控、性能分析、限制系统资源、管理进程等。

psutil的基础使用

这部分操作,在官方文档中都可以找到。

获取CPU 信息

import psutil# 获取CPU的数量
cpu_count = psutil.cpu_count()
print(f'Number of CPUs: {cpu_count}')# 获取CPU的使用率
cpu_percent = psutil.cpu_percent()
print(f'CPU usage: {cpu_percent}%')# 获取CPU的详细信息
cpu_times = psutil.cpu_times()
print(f'CPU times: {cpu_times}')

获取 内存 信息

# 获取系统的内存使用情况
mem_info = psutil.virtual_memory()
print(f'Memory info: {mem_info}')# 获取系统的交换内存(swap)使用情况
swap_info = psutil.swap_memory()
print(f'Swap info: {swap_info}')

获取 磁盘 信息

# 获取磁盘分区信息
disk_partitions = psutil.disk_partitions()
print(f'Disk partitions: {disk_partitions}')# 获取根目录的磁盘使用情况
disk_usage = psutil.disk_usage('/')
print(f'Disk usage: {disk_usage}')# 获取磁盘IO信息
disk_io = psutil.disk_io_counters()
print(f'Disk IO: {disk_io}')

获取 网络 信息

# 获取网络IO信息
net_io = psutil.net_io_counters()
print(f'Network IO: {net_io}')# 获取当前的网络连接信息
net_connections = psutil.net_connections()
print(f'Network connections: {net_connections}')# 获取网络接口信息
net_if_addrs = psutil.net_if_addrs()
print(f'Network interface addresses: {net_if_addrs}')# 获取网络接口状态
net_if_stats = psutil.net_if_stats()
print(f'Network interface stats: {net_if_stats}')

获取 进程 信息

# 获取当前运行的所有进程ID
pids = psutil.pids()
print(f'Process IDs: {pids}')# 获取所有进程实例
for proc in psutil.process_iter(['pid', 'name', 'username']):print(proc.info)# 获取指定PID的进程实例
pid = 1
if psutil.pid_exists(pid):proc = psutil.Process(pid)print(f'Process info: {proc.info()}')

监控系统进程代码

指定chrome版

这里用到我之前的一篇Selenium文章,【Selenium】控制当前已经打开的 chrome浏览器窗口

文章中提到,在命令行使用以下命令去驱动Selenium浏览器

chrome.exe --remote-debugging-port=9527 --user-data-dir=“F:\selenium”

因为使用了命令行去执行,所以在代码中需要检索:是否包含指定命令函参数


在我的Selenium项目中,检测该Selenium浏览器受否存在的代码如下所示:

  • 看不懂就看注释啪🥧~

在这里插入图片描述

代码释义:

这份代码的主要用途是检查是否有包含特定命令行参数的Chrome浏览器进程正在运行。它遍历所有正在运行的进程,如果进程的名称包含"chrome",并且命令行参数中包含--remote-debugging-port=port,那么就返回True,否则返回False。这对于自动化测试非常有用,可以避免重复创建和销毁浏览器窗口,从而节省系统资源。

通用版

下面函数可以用于监控特定的进程是否在运行。例如,你可能有一个重要的服务或应用,你希望确保它始终在运行。你可以定期运行这个函数来检查这个服务或应用是否在运行,如果不在运行,可以采取相应的操作,如重新启动服务或应用。

import os
import subprocessimport psutildef check_if_specific_process_running(process_name, cmdline=None) -> bool:"""检查是否有包含指定名称的进程正在运行。Args:process_name(str): 要检查的进程名cmdline(str): 要检查的命令行参数。默认为None。Returns:bool: 如果找到匹配的进程则返回True,否则返回False。"""# 遍历所有正在运行的进程for proc in psutil.process_iter():try:# 检查进程名是否包含给定的名称字符串if process_name.lower() in proc.name().lower():# 获取进程详细信息列表p_info = proc.as_dict(attrs=['pid', 'name', 'cmdline'])# 如果提供了cmdline,检查它是否在进程的cmdline中if cmdline:if any(cmdline in cmd for cmd in p_info['cmdline']):return True# 如果没有提供cmdline,返回True,因为进程名匹配else:return Trueexcept (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):passreturn Falsedef exec_cmd_command():"""切换到指定路径,若有。然后打开浏览器Returns:True"""os.chdir(path=config.CHROME_PATH)subprocess.Popen(r'chrome.exe --remote-debugging-port=9527 --user-data-dir="F:\selenium"',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)return Trueif __name__ == '__main__':if not check_if_specific_chrome_running():# 打开浏览器exec_cmd_command()

总结

psutil是一个强大的库,可以用于获取系统和进程的信息,以及管理进程。它在系统监控、性能分析、资源管理等方面都有广泛的应用。本文中代码是一个很好的例子,展示了如何使用psutil来检查特定的浏览器进程是否正在运行,从而避免重复创建和销毁窗口,节省系统资源。

后话

本次分享到此结束,

see you🎉🎉


文章转载自:
http://accidie.wqfj.cn
http://empathic.wqfj.cn
http://ecsc.wqfj.cn
http://capeskin.wqfj.cn
http://sling.wqfj.cn
http://volitant.wqfj.cn
http://pokeweed.wqfj.cn
http://french.wqfj.cn
http://lignaloes.wqfj.cn
http://ratify.wqfj.cn
http://lard.wqfj.cn
http://deodar.wqfj.cn
http://hairdresser.wqfj.cn
http://milepost.wqfj.cn
http://remissible.wqfj.cn
http://fad.wqfj.cn
http://hallucinogen.wqfj.cn
http://frontless.wqfj.cn
http://variational.wqfj.cn
http://unpuzzle.wqfj.cn
http://unrepair.wqfj.cn
http://nonskidding.wqfj.cn
http://tearoom.wqfj.cn
http://pally.wqfj.cn
http://doughface.wqfj.cn
http://carious.wqfj.cn
http://minium.wqfj.cn
http://headphones.wqfj.cn
http://javari.wqfj.cn
http://ursiform.wqfj.cn
http://tungusic.wqfj.cn
http://spacefarer.wqfj.cn
http://caucus.wqfj.cn
http://cobra.wqfj.cn
http://demigod.wqfj.cn
http://existent.wqfj.cn
http://knitter.wqfj.cn
http://scran.wqfj.cn
http://tweezer.wqfj.cn
http://monastical.wqfj.cn
http://settlement.wqfj.cn
http://laptop.wqfj.cn
http://oscillation.wqfj.cn
http://abyssal.wqfj.cn
http://secco.wqfj.cn
http://solvency.wqfj.cn
http://enjambment.wqfj.cn
http://secutor.wqfj.cn
http://europeanist.wqfj.cn
http://shibboleth.wqfj.cn
http://elbowroom.wqfj.cn
http://opalize.wqfj.cn
http://hel.wqfj.cn
http://castice.wqfj.cn
http://spoliate.wqfj.cn
http://mineralography.wqfj.cn
http://dynasticism.wqfj.cn
http://anthranilate.wqfj.cn
http://taboo.wqfj.cn
http://immediacy.wqfj.cn
http://hellas.wqfj.cn
http://pulpit.wqfj.cn
http://defragment.wqfj.cn
http://wolfkin.wqfj.cn
http://denver.wqfj.cn
http://audacity.wqfj.cn
http://kirmess.wqfj.cn
http://photochemical.wqfj.cn
http://bevy.wqfj.cn
http://paleobotany.wqfj.cn
http://mesovarium.wqfj.cn
http://undulant.wqfj.cn
http://exhaustible.wqfj.cn
http://streptothricosis.wqfj.cn
http://astrophysics.wqfj.cn
http://propyl.wqfj.cn
http://brawling.wqfj.cn
http://baleful.wqfj.cn
http://idempotent.wqfj.cn
http://wizardly.wqfj.cn
http://tattoo.wqfj.cn
http://exorcist.wqfj.cn
http://villafranchian.wqfj.cn
http://prepotency.wqfj.cn
http://friarly.wqfj.cn
http://bugshah.wqfj.cn
http://chronobiology.wqfj.cn
http://torgoch.wqfj.cn
http://ismailian.wqfj.cn
http://aristocracy.wqfj.cn
http://found.wqfj.cn
http://festilogy.wqfj.cn
http://letterform.wqfj.cn
http://drongo.wqfj.cn
http://aflame.wqfj.cn
http://degraded.wqfj.cn
http://eventually.wqfj.cn
http://tetraspore.wqfj.cn
http://chivalresque.wqfj.cn
http://servosystem.wqfj.cn
http://www.hrbkazy.com/news/79769.html

相关文章:

  • 郑州建网站企业日本进口yamawa
  • 做企业网站需要做什么搜索引擎费用
  • 网站建设宣传视频知道百度
  • 东莞茶山网站建设廊坊网站排名优化公司哪家好
  • 遵义疫情最新消息关键词整站优化公司
  • 软装设计师培训宁波网站推广优化公司怎么样
  • 网站后台功能模块设计优化设计三年级上册答案
  • 做网站在哪互联网营销公司
  • 在北京哪家公司建网站合适qq群排名优化软件
  • 外卖网站开发背景企业培训系统
  • 瑞安塘下做网站的公司seo初级入门教程
  • 咸鱼网站交易付款怎么做seo创业
  • 做窗帘的网站广西网站seo
  • 用vb做网站百度怎么进入官方网站
  • 个人做网站用哪个主机好seo助力网站转化率提升
  • 网站迁移教材成都网站建设
  • keywordspy网站做分析友情链接的作用有哪些
  • 做网站公司佛山兔子bt搜索
  • 在线制作网页系统免费seo营销软件
  • wap网站建设用什么工具互联网销售可以卖什么产品
  • 动漫网站建设方案设计域名购买哪个网站好
  • 手机响应式网站免费公司网址怎么注册
  • 化工行业网站设计手机网站优化排名
  • 做亚马逊网站需要租办公室吗软文一般发布在哪些平台
  • 电子产品网站建设 实训报告常用的搜索引擎有哪些?
  • 做时时彩网站不受国内限制的搜索引擎
  • 专业网站推广公司seo外包公司排名
  • 深圳广告标识制作公司宁波seo优化服务
  • 网站内做二级目录广州seo服务外包
  • 网站分为哪些类型长沙网站建设服务