上一编文章讨论python 解决 webdriver Firefox 内存占用问题,发现程序畅顺运行1小时后,卡顿的情况还是存在。最后估计是在读取网页表格数据时,循环调用元素查找定位获取元素text值,导致cpu超负荷问题。实在没办法,尝试改变读取网页表格数据的方式,利用webdriver.page_source获取网页源码,然后用正则表达式获取表格内容。就是将对webdriver对象的处理,变为对字符串变量的处理,cpu卡的问题立即解决!
pageSource = webdriver.page_source #获取源码
re_table = re.compile(r'<tr\.{10,20}</tr> #查找表格的一行
re_mobile = re.compile(r'>1\d{10}<') #查找手机号码
lines = re_table.findall(pageSource)
mobileList = []
for line in lines:
mobile = re_mobile.search(line).group() #获取每行的手机号码
mobileList.append(mobile)
print(mobileList)