正则和xpath在网页中匹配字段的效率比较

1. 测试页面是  https://www.hao123.com/,这个是百度的导航

2. 为了避免网络请求带来的差异,我们把网页下载下来,命名为html,不粘贴其代码。

3.测试办法:

  我们在页面中找到   百度新闻 关键字的链接,为了能更好的对比,使程序运行10000次,比较时间差异:

 

  

  

 

  1.正则编码及其时间   

start_time = time.time()
for i in range(0,10000):
    baidu_news = re.findall('腾讯新闻</a></span><span><a class="sitelink mainlink singglelink" cls="xw,n" alog-custom="ind:xw,sal:0,atd:" href="(.*?)">百度新闻</a>',html)[0]
    print baidu_news

end_time = time.time()
print "程序运行时间是:",end_time - start_time

  运行时间:6.5 秒钟

    

  

    2.xpath 编码及其时间

  

start_time = time.time()
selector = etree.HTML(html)

for i in range(0,10000):
    content=selector.xpath('//*[@id="coolsite-top"]/div[4]/span[3]/a/@href')[0]
    print content

end_time = time.time()
print "程序运行时间是:",end_time - start_time

  运行时间:17.39 秒钟

  

 

总结:其中 selector = etree.HTML(html)   将源码转化为能被XPath匹配的格式,这个过程失比较耗时的。

结论:正则效率优于xpath

如有异议,请联系作者,谢谢

    

    

  

转载于:https://www.cnblogs.com/xuchunlin/p/8079171.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值