前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-数据解析-正则表达式

Python-数据解析-正则表达式

作者头像
小团子
发布2019-07-18 15:07:13
9930
发布2019-07-18 15:07:13
举报
文章被收录于专栏:数据云团

Python-数据挖掘-贴吧案例-下

在上几篇中,可以将整个网页的内容全部爬取下来。不过,这些数据的信息量非常庞大,而且大部分数据并不是所需要的。这就需要对爬取的数据进行过滤筛选,去掉没用的数据,留下有价值的数据。

要想过滤网页的数据,先要对服务器返回的数据形式做一些了解,这些数据一般可分为非结构化和结构化两种。

  • 非结构化数据:

数据结构不规则或不完整,没有预定义的数据模型,不方便使用数据库二维逻辑来表现的数据,包括所有格式的办公文档、文本、HTML、图像等。

  • 结构化数据:

能用数据或统一的结构表示,具有模式的数据,包括 XML 和 JSON 等。

Python 支持一些解析网页的技术,分别为 正则表达式、XPath、Beautiful Soup 和 JSONPath。

① 针对文本的解析,有正则表达式。

② 针对 HTML/XML 的解析,有 XPath、Beautiful Soup、正则表达式。

③ 针对 JSON 的解析,有 JSONPath。

区别:

  • 正则表达式基于文本的特征来匹配或查找指定的数据,它可以处理任何格式的字符串文档,类似于模糊匹配的效果。
  • XPath 和 Beautiful Soup 基于 HTML/XML 文档的层次结构来确定到达指定节点的路径,所以它们更适合处理层级比较明显的数据。
  • JSONPath 专门用于 JSON 文档的数据解析。

一、正则表达式

用于处理字符串的强大工具,通常被用来检索和替换那些符合规则的文本。

re 模块的一般使用步骤:

  • 使用 compile() 函数将正则表达式以字符串形式编译为一个 Pattern 类型的对象。
  • 通过 Pattern 对象提供的一系列方法对文本进行查找或替换,得到一个处理结果。
  • 使用处理结果提供的属性和方法获得信息,如匹配到的字符串。

从网站上爬取下来的网页源代码中都有汉字,如果要匹配这些汉字,就需要知道其对应的正则表达式。通常情况下,中文对应的 Unicode 编码范围为 [u4e00-u9fa5],这个范围并不是很完整,例如,没有包括全角(中文)标点,但是大多数情况下是可以使用的。

例如,把“hello,数据云团,技能积累,知识分享”中的汉字提取出来。

代码语言:javascript
复制
import re
# 待匹配的字符串
title = "hello,数据云团,技能积累,知识分享"
# 创建正则表达式,用于只匹配中文
pattern = re.compile(r"[\u4e00-\u9fa5]+")
# 检索整个字符串,将匹配的中文放到列表中
result = pattern.findall(title)
print(result)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档