xpath与正则表达式抽取网页信息的速度比较
2013-12-16 14:42
204 查看
以前我都是用正则表达式处理网页,对于那种非常不是经常改代码的网站,正则提取是非常好的
但对于经常改代码的网站,写一个好的正则表达式确实有点费事,用xpath就比较好,但写了脚本之后发现比以前慢一些,于是写了一个小程序测试一下速度
随便将一个百度搜索结果页另存为S:\baidu.htm,取title标签中的字符串
0.00576198176985
0.0840350097817
0.0778033702951
0.133525497136
确实正则很快,是其他方案的10倍以上,如果编译一下速度可能更快,pyquery最慢,中间是用lxml提取的,如果有不对的地方,希望大家指正.
但对于经常改代码的网站,写一个好的正则表达式确实有点费事,用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提取的,如果有不对的地方,希望大家指正.
相关文章推荐
- 利用正则表达式抽取网页信息
- Java使用正则表达式及字符串操作,抽取网页信息
- C#基于正则表达式实现获取网页中所有信息的网页抓取类实例
- 常用正则表达式爬取网页信息及HTML分析总结
- 正则表达式相关:C# 抓取网页类(获取网页中所有信息)
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结
- 新浪爬虫微博个人地址公司等信息抽取正则表达式
- 使用正则表达式抽取新闻/BBS网页发表时间(修改版)
- c# 正则表达式对网页进行有效内容抽取
- Python中文文本信息抽取中常见的正则表达式
- Python使用正则表达式获取网页中所需要的信息
- 用正则表达式采集网页上的图片信息
- 正则表达式相关:C# 抓取网页类(获取网页中所有信息)
- 正则表达式 网页处理速度慢。。怎么优化?
- Java中正则表达式、模式匹配与信息抽取
- 正则表达式相关:C# 抓取网页类(获取网页中所有信息)
- 正则表达式相关:C# 抓取网页类(获取网页中所有信息)
- BeatutifulSoup 、Xpath和正则表达式解析网页
- 浅谈正则表达式在.net的运用-C#程序抓取网页信息
- Matlab 提取网页信息保存到Excel(正则表达式)