专栏首页数据云团Python-数据解析-正则表达式

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

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,数据云团,技能积累,知识分享”中的汉字提取出来。

import re
# 待匹配的字符串
title = "hello,数据云团,技能积累,知识分享"
# 创建正则表达式,用于只匹配中文
pattern = re.compile(r"[\u4e00-\u9fa5]+")
# 检索整个字符串,将匹配的中文放到列表中
result = pattern.findall(title)
print(result)

本文分享自微信公众号 - 数据云团(SmartData),作者:云团小楠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第一季 | UpdateModelMixin 了解下,实现用户信息修改

    Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编...

    小团子
  • Django进阶篇 Rest framework (四)

    如果记录的数量很多,服务器不可能都将它们返回给用户。API 应该提供参数,过滤返回结果。

    小团子
  • Django源码学习-11-base.py

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(...

    小团子
  • 如何理解HLS中的Stream

    数据缓存采用LUT时,实际上用的是SLICEM里的LUT。如果使用量大,就会出现这些LUT分布在不同列,同时,也增加了CLB的端口密度(Pin Density)...

    Lauren的FPGA
  • 【技术综述】深度学习中的数据增强方法都有哪些?

    很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好:(1)寻找更多的数据。(2)充分利用已有的数据进行数据增强,今天就来...

    机器视觉CV
  • 【技术综述】深度学习中的数据增强方法都有哪些?

    数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。

    用户1508658
  • Milvus 在流式数据场景下的性能表现

    Milvus 作为一款开源的特征向量相似度搜索引擎,其开源半年以来,在全球已经有数百家企业或组织用户。这些用户涉及各个领域,包括金融、互联网、电商、生物制药等。...

    ZILLIZ
  • 从0到1搭建大数据平台之数据采集系统

    当你需要搭建大数据平台的时候一定是传统的关系型数据库无法满足业务的存储计算要求了,所以首先我们面临的是海量的数据。

    WindyQin
  • 一个耗资数百万的AI数据集,和它背后的90后超人们

    李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI ? 不够智能的人工智能,往往被调侃成“人工智障”,但不是所有人都清楚知道“智障”的原因。 199...

    量子位
  • 第一批被AI累死的人

    一眼望过去,一排排的电脑屏幕上,都是类似的画面。也许是因为窗帘的遮光效果太好,略显昏暗的办公环境加上电脑屏幕上被放大的各种物体细节,颇为惊悚。

    镁客网

扫码关注云+社区

领取腾讯云代金券