- 博客(7)
- 收藏
- 关注
原创 selenium解决鼠标拖动滑块慢的问题
selenium解决鼠标拖动滑块慢的问题通常情况下使用 move_by_offset移动鼠标会有明显的拖动间隔,将 \venv\Lib\site-packages\selenium\webdriver\common\actions\pointer_input.py文件里的DEFAULT_MOVE_DURATION变量调小即可纵享丝滑~~......
2021-04-21 16:33:17
3200
4
转载 Python多线程(五):线程池
转载自:https://www.jianshu.com/p/beb094ae4261在之前的文章中我们一般只演示了两个线程的情况,在实际中我们要管理多个线程的时候就需要用到线程池。使用线程池管理线程能够使主线程可以获得某一线程的状态以及返回值,当一个线程完成的时候主线程就能立知道。这里我们使用的线程池类是ThreadPoolExecutor,它在concurrent.futures下。concurrent.futures中还包括了ProcessPoolExecutor进程池对象,这个包的设计让多线程和多
2020-05-16 14:45:18
361
转载 Python多线程(四):生产者消费者问题
转载自:https://www.jianshu.com/p/1b3345aac5c1生产者消费者问题是多线程中一个很经典并发协作的问题,这个问题主要包含两类线程,一个是生产者用于生产数据,另一个是消费者用于消费数据,两者操作同一个数据共享区域,这种模型在编程中非常常见,比如爬虫,生产者负责爬取链接,消费者负责解析链接所指向的网页内容。这种模型需要满足下面的两个特征:消费者在数据共享区域为空时阻塞,直到共享区域出现新数据。生产者在数据共享区域满时阻塞,直到数据共享区出现空位。下面是一个简单的例子:
2020-05-16 14:39:51
682
转载 Python多线程(三):锁
转载自:https://www.jianshu.com/p/9fa218e50a16在Python多线程(一):GIL中我们提到了竞态条件问题,即不同线程修改相同的共享变量出现运行多次结果不一样的问题,即使CPython中有GIL,这种问题依然存在。现在我们通过多线程的锁机制来解决这个问题。还是相同的代码:import threadingtotal = 0def add(): global total for i in range(1000000): total
2020-05-16 14:31:32
274
转载 Python多线程(二):多线程编程
转载自:https://www.jianshu.com/p/c1d001564a0c多线程编程有两种方式,一种是通过Thread类对线程进行实例化,另外一种是通过继承Thread类并重写其run方法。通过Thread类实例化进行多线程编程下面是一个例子:import threadingimport timedef do_something(content, sec): print('%s started' % content) time.sleep(sec) print
2020-05-16 14:21:01
136
转载 Python多线程(一):GIL
GIL 是 Global Interpreter Lock,即全局解释锁的缩写,保证了了同一时刻只有一个线程在一个 CPU 上执行字节码,无法将多个线程映射到多个 CPU 上。这是 CPython 解释器的缺陷,由于 CPython 是大部分环境下默认的 Python 执行环境,而很多库都是基于 CPython 编写的,因此很多人将 GIL 归结为 Python 的问题。GIL 被设计来保护线程安全,由于多线程共享变量,如果不能很好的进行线程同步,多线程非常容易将线程改乱。实际上即使有了 GIL,这个问题
2020-05-16 14:09:52
131
原创 xpath 简单使用
xpath 使用xpath 语法实例定位标签轴的使用模糊匹配xpath 语法首先介绍 xpath 的语法:选取节点:路径表达式结果bookstore选取 bookstore 元素的所有子节点/bookstore选取根元素 bookstore。注:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!bookstore/book选取属于 ...
2020-04-12 00:43:40
362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人