xpath与正则表达式抽取网页信息的速度比较
发布时间:2020-12-14 01:59:05 所属栏目:百科 来源:网络整理
导读:以前我都是用正则表达式处理网页,对于那种非常不是经常改代码的网站,正则提取是非常好的 但对于经常改代码的网站,写一个好的正则表达式确实有点费事,用xpath就比较好,但写了脚本之后发现比以前慢一些,于是写了一个小程序测试一下速度 随便将一个百度搜
以前我都是用正则表达式处理网页,对于那种非常不是经常改代码的网站,正则提取是非常好的 但对于经常改代码的网站,写一个好的正则表达式确实有点费事,用xpath就比较好,但写了脚本之后发现比以前慢一些,于是写了一个小程序测试一下速度 随便将一个百度搜索结果页另存为S:baidu.htm,取title标签中的字符串 #coding=utf-8 import time import re import time import lxml.html f=open(r'S:baidu.htm','r') resp=f.read() f.close() t1=time.clock() for x in xrange(1000): title=re.search(r'<title>(.*?)</title>',resp).group(1) print time.clock()-t1 content=resp.decode('utf-8') dom=lxml.html.document_fromstring(content) t2=time.clock() for x in xrange(1000): for item in dom.xpath('//title'): title=item.text_content() print time.clock()-t2 from lxml import etree doc = etree.HTML(content) t3=time.clock() for x in xrange(1000): for path in doc.xpath('//title'): title=path.text print time.clock()-t3 from pyquery import PyQuery page = PyQuery(content,parser='html') t4=time.clock() for x in xrange(1000): title=page('title').text() print time.clock()-t4 结果如下 0.00576198176985 0.0840350097817 0.0778033702951 0.133525497136 确实正则很快,是其他方案的10倍以上,如果编译一下速度可能更快,pyquery最慢,中间是用lxml提取的,如果有不对的地方,希望大家指正. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |