解决js动态刷新,导致dom树重新渲染,旧dom树上的ele过期的问题 一 、 问题在项目中使用selenium驱动js执行点击事件时,产生如下错误: selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document 通过字面意思,我们可以知道元素不再附属于页面。官方文档中关于这个异常给了两个常见的原因。 1231 2021-10-25 Selenium Python Python Selenium
源码分析Python的deque双端队列 一、 背景我们都知道Python内置的列表list, 它可以模拟栈的操作,可以在O(1)的时间复杂度内在尾部增加和删除元素,它底层实现了动态扩容机制。但是在项目中,设计到BFS相关算法时,使用list, 从头部弹出元素, 将会导致后续的元素依次向前移动,时间复杂度变为O(N),性能变得很差。 Python标准库提供了deque模块—-双端队列,实现在头部删除和插入元素的时间复杂度为O(1),在尾部 2021-10-25 C Python 源码分析 数据结构 Python 源码分析 数据结构 C
解决selenium的sends_key发送文本的执行缓慢和卡顿的问题 在项目中使用selenium的send_keys中向body中添加大文本的数据时,会出现页面卡顿的现象。源码解析, 问题原因为此, 特地看了下send_keys的源码。先上源码, 再做分析。 123456789101112131415161718192021222324252627282930313233def send_keys(self, *value): ""&qu 2021-10-14 selenium Python Python selenium
字符串匹配算法之BF算法和RK算法 BF算法俗称暴力破解法,假设有长度为m的子串,长度为n的主串, n>=m, 那么BF算法的思想就是每轮遍历m个字符,遍历n-m+1次,最坏的时间复杂度为O(n*m)。 RK算法比较子串的hash值与带比较串的hash是否相等,一直则说明存在。时间复杂度O(n) 123456789101112131415161718192021222324252627282930313233343536373 2021-09-22 算法 算法
Trie树 --- 具有相同前缀的字符串匹配 Trie树,实现简易的搜索引擎的搜索关键词功能,用于具有相同前缀的字符串匹配 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859MAX_NUM = 26import typing as tclass TrieNode(object) 2021-09-20
Kahn、DFS --- 拓扑排序 拓扑排序算法 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677# 构造邻接表import typing as tfrom collections import 2021-09-12 算法 算法 DFS Kahn
回溯、动态规划 -- 最短的路径 最短路径1.回溯算法求解2.动态规划求解123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687import typing a 2021-09-10 算法 算法 动态规划 回溯
OS模块常用函数汇总 1.os.path.join(path, name):路径拼接。 2.os.walk(path):递归遍历目录, 返回三个值,root, dirs, files, root的第一个路径是os.walk的参数。 3.os.path.exists(path): 判断路径是否存在 4.os.makedirs(path): 递归创建指定目录 5.os.popen(cmd): 执行cmd指令 2021-09-09 Python Python
回溯--八皇后 回溯算法处理八皇后问题 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253def eight_queen(): """ 八皇后 因为只需存储八个位置的数, 压缩数组, 下标存储行, 值存储列 回溯换路 2021-09-09 算法 算法 回溯
四次挥手要点 一、 四次挥手时,FIN_WAIT1状态的连接出现很多的原因。被动方的FIN报文段一直没有发送出去,导致主动方处于FIN_WAIT1状态的连接产生大量的积压。 如果存在攻击者恶意攻击,就可能导致被动方的FIN报文段一直发不出去。 原因: 1.TCP必须保证报文是有序发送的,如果发送方的发送缓存区中还有数据没有发送完,那么FIN报文也不能提前发送。 2.TCP存在流量控制,当接受方的窗口 2021-09-05 计算机网络 计算机网络