您的位置:首页 > 编程语言 > Python开发

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}

每段限制下长度

继续测试,貌似不卡了。。得出结论:正则的问题必须重视。。。。在正则爬取大数据文件的时候尽量要优化匹配
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 多线程 正则