如何在python中使用selenium

如何在python中使用selenium,第1张

1、下载Python2.7版本,默认运行安装即可;

2、安装完成之后,设置Python环境变量C:\Python27(操作步骤: 电脑->属性->高级->环境变量->系统变量中的PATH为:变量值: C:\Python27 )

3、在python的官方网站上可以找到SetupTools的下载,解压安装安装即可;

4、当安装SetupTools之后,就可以在python安装目录下看到Script目录,

5、同样在变量中加入 path:C:\Python27\Scripts,

6、打开cmd命令行,将目录切换到C:\Python27\Scripts下,输入命令“easy_install pip“安装pip;

7、安装成功pip之后,执行pip install -U selenium 进行下载安装最新selenium的版本。

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

1、软件开发:Python语言支持多函数编程,可以担任任何软件的开发工作,是它的标配能力。

2、科学计算:Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛,有更多的程序库的支持,做科学计算是非常合适的选择。

3、自动化运维:Python是作为运维工程师的首选编程语言,有诸多优势所在,是非常受喜欢的编程语言。

4、云计算:开源云计算解决方案OpenStack就是基于Python开发的。

5、web开发:基于Python的Web开发框架不要太多,比如耳熟能详的Django,还有Tornado,Flask。

6、网络爬虫:也称网络蜘蛛,是大数据行业获取数据的核心工具。能够编写网络爬虫的编程语言有不少,但Python绝对是其中的主流之一。

7、数据分析:结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石,Python是数据分析领域首选的编程语言。

8、人工智能:对于人工智能我想不用多介绍,是现在非常流行的一个行业,而人工智能也是未来的发展,Python是人工智能的首选编程语言。

Python进阶(二十六)-多线程实现同步的四种方式

临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。

锁机制

threading的Lock类,用该类的acquire函数进行加锁,用realease函数进行解锁

import threadingimport timeclass Num:

def __init__(self):

self.num = 0

self.lock = threading.Lock()def add(self):

self.lock.acquire()#加锁,锁住相应的资源

self.num += 1

num = self.num

self.lock.release()#解锁,离开该资源

return num

n = Num()class jdThread(threading.Thread):

def __init__(self,item):

threading.Thread.__init__(self)

self.item = itemdef run(self):

time.sleep(2)

value = n.add()#将num加1,并输出原来的数据和+1之后的数据

print(self.item,value)for item in range(5):

t = jdThread(item)

t.start()

t.join()#使线程一个一个执行12345678910111213141516171819202122232425262728

当一个线程调用锁的acquire()方法获得锁时,锁就进入“locked”状态。每次只有一个线程可以获得锁。如果此时另一个线程试图获得这个锁,该线程就会变为“blocked”状态,称为“同步阻塞”(参见多线程的基本概念)。

直到拥有锁的线程调用锁的release()方法释放锁之后,锁进入“unlocked”状态。线程调度程序从处于同步阻塞状态的线程中选择一个来获得锁,并使得该线程进入运行(running)状态。

信号量

信号量也提供acquire方法和release方法,每当调用acquire方法的时候,如果内部计数器大于0,则将其减1,如果内部计数器等于0,则会阻塞该线程,知道有线程调用了release方法将内部计数器更新到大于1位置。

import threadingimport timeclass Num:

def __init__(self):

self.num = 0

self.sem = threading.Semaphore(value = 3)#允许最多三个线程同时访问资源

def add(self):

self.sem.acquire()#内部计数器减1

self.num += 1

num = self.num

self.sem.release()#内部计数器加1

return num

n = Num()class jdThread(threading.Thread):

def __init__(self,item):

threading.Thread.__init__(self)

self.item = itemdef run(self):

time.sleep(2)

value = n.add()

print(self.item,value)for item in range(100):


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/128941.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存