python 正则表达式和Xpath清洗数据总结

爬虫数据清洗,必然会使用到re、xpath、css。目前我总结前面两个,有时间再补上、

下面内容都是基于Python

一、正则表达式

  前提包:import re

  基本语法

  我正则技能差,因为一般只使用:

.*? 然后左右两边写上会出现的信息

 r"\"匹配.*?又是无用的信息\""

最后通过字符串的 replace 把没用的信息再替换。

这个方法几乎解决了60%我以上的信息清洗。然后再结合上面的一些语法大概能构建自己想要的数据re。

    题外话(正则表达式然后想起了字符串匹配,还有没学的后缀自动机23333

二、xpath

 xpath可以直接定位都压面的某个位置,然后直接提取出你需要的文本,然后构造的路径就跟着页面往下走就好。

语法学习

 有个比较好的就是可以直接室友浏览器直接导出xpath路径,坑也在这里!

注意点:

1、有些页面显示是浏览器自动补全信息之后的,页面经过js或者其他东西改变了可能和responese不同(例如微信的某些页面所以不要盲目相信浏览器导出的xpath,更多观察。

2、不同地方的xpath可能有点小不同、

 在scrapy中可以直接使用xpath,、

需要导入的包:from lxml import html

但是在requests的返回数据中需要经过:   html.fromstring(response.text)  处理 

然后才能正常的使用xpath

xpath和re结合简直高效清洗数据。

一些常用的信息:

 Xpath的到的也是个selectors ,可以继续使用xpath提取
        /    从根节点选取。
        //    从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
        .    选取当前节点。
        ..    选取当前节点的父节点。
        @    选取属性。
        i.extract() //把xpath获得的数据提取出来,获得的是数组信息
        text() 使用:".//a/text()"     获得text的内容
        @href   //获得url


  错误报告:Element h2 at 0x194853653c8>
        原因 :你获得的是他的属性值,而不是内容。

三、CSS提取

 

    以后用的比较多再补上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值