python关于多线程正则爬取邮件地址造成大量回溯CPU爆满,界面卡顿的问题
2015-06-05 17:21
826 查看
使用的pyqt+python
开始一直以为是信号发送太频繁造成界面卡顿,然后减少信号发送量,结果还是一样
又开始不停的查资料,结果发现是在爬取邮件地址的正则上出了问题
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}
开始看这个正则表达基本没有问题,找了些资料发现了正则的贪婪和非贪婪模式,然后接着测试
[a-zA-Z0-9._%+-]+?@[a-zA-Z0-9.-]+?\.[a-zA-Z]{2,4}
还是当爬取一段时间,cpu就爆满了,这是有正则匹配当字符串内容过长的时候造成大量回溯,然后又参考固化分组。。
[a-zA-Z0-9._%+-]{1,20}@[a-zA-Z0-9.-]{1,20}\.[a-zA-Z]{2,4}
每段限制下长度
继续测试,貌似不卡了。。得出结论:正则的问题必须重视。。。。在正则爬取大数据文件的时候尽量要优化匹配
开始一直以为是信号发送太频繁造成界面卡顿,然后减少信号发送量,结果还是一样
又开始不停的查资料,结果发现是在爬取邮件地址的正则上出了问题
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}
开始看这个正则表达基本没有问题,找了些资料发现了正则的贪婪和非贪婪模式,然后接着测试
[a-zA-Z0-9._%+-]+?@[a-zA-Z0-9.-]+?\.[a-zA-Z]{2,4}
还是当爬取一段时间,cpu就爆满了,这是有正则匹配当字符串内容过长的时候造成大量回溯,然后又参考固化分组。。
[a-zA-Z0-9._%+-]{1,20}@[a-zA-Z0-9.-]{1,20}\.[a-zA-Z]{2,4}
每段限制下长度
继续测试,貌似不卡了。。得出结论:正则的问题必须重视。。。。在正则爬取大数据文件的时候尽量要优化匹配
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Java简单字符串插值实现
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例