Python-数据挖掘-贴吧案例-下
在上几篇中,可以将整个网页的内容全部爬取下来。不过,这些数据的信息量非常庞大,而且大部分数据并不是所需要的。这就需要对爬取的数据进行过滤筛选,去掉没用的数据,留下有价值的数据。
要想过滤网页的数据,先要对服务器返回的数据形式做一些了解,这些数据一般可分为非结构化和结构化两种。
数据结构不规则或不完整,没有预定义的数据模型,不方便使用数据库二维逻辑来表现的数据,包括所有格式的办公文档、文本、HTML、图像等。
能用数据或统一的结构表示,具有模式的数据,包括 XML 和 JSON 等。
Python 支持一些解析网页的技术,分别为 正则表达式、XPath、Beautiful Soup 和 JSONPath。
① 针对文本的解析,有正则表达式。
② 针对 HTML/XML 的解析,有 XPath、Beautiful Soup、正则表达式。
③ 针对 JSON 的解析,有 JSONPath。
区别:
一、正则表达式
用于处理字符串的强大工具,通常被用来检索和替换那些符合规则的文本。
re 模块的一般使用步骤:
从网站上爬取下来的网页源代码中都有汉字,如果要匹配这些汉字,就需要知道其对应的正则表达式。通常情况下,中文对应的 Unicode 编码范围为 [u4e00-u9fa5],这个范围并不是很完整,例如,没有包括全角(中文)标点,但是大多数情况下是可以使用的。
例如,把“hello,数据云团,技能积累,知识分享”中的汉字提取出来。
import re
# 待匹配的字符串
title = "hello,数据云团,技能积累,知识分享"
# 创建正则表达式,用于只匹配中文
pattern = re.compile(r"[\u4e00-\u9fa5]+")
# 检索整个字符串,将匹配的中文放到列表中
result = pattern.findall(title)
print(result)