爬虫之使用正则提取数据

本文介绍了爬虫中正则表达式的作用,强调了其在数据提取中的重要性。文章详细讲解了正则表达式的概念和匹配规则,包括Python的re模块和compile函数的使用,并通过实例演示了match、search、findall、finditer、split和sub等方法,还提及了匹配中文和贪婪模式与非贪婪模式的概念。
摘要由CSDN通过智能技术生成

一、页面解析和数据提取

一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为两部分,非结构化的数据 和 结构化的数据。
非结构化数据:先有数据,再有结构,
结构化数据:先有结构、再有数据
不同类型的数据,我们需要采用不同的方式来处理。

非结构化的数据处理

文本、电话号码、邮箱地址

  • 正则表达式

HTML 文件

  • 正则表达式
  • XPath
  • CSS选择器
结构化的数据处理

JSON 文件

  • JSON Path
  • 转化成Python类型进行操作(json类)

XML 文件

  • 转化成Python类型(xmltodict)
  • XPath
  • CSS选择器
  • 正则表达式

二、为什么要学正则表达式

实际上爬虫一共就四个主要步骤:

  • (1) 明确目标 (要知道你准备在哪个范围或者网站去搜索)
  • (2) 爬 (将所有的网站的内容全部爬下来)
  • (3) 取(去掉对我们没用处的数据)
    (4) 处理数据(按照我们想要的方式存储和使用)

我们在之前的案例里实际上省略了第3步,也就是"取"的步骤。因为我们down下了的数据是全部的网页,这些数据很庞大并且很混乱,大部分的东西使我们不关心的,因此我们需要将之按我们的需要过滤和匹配出来。
那么对于文本的过滤或者规则的匹配,最强大的就是正则表达式,是Python爬虫世界里必不可少的神兵利器。

1、什么是正则表达式

正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及
这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  • (1) 给定的字符串是否符合正则表达式的过滤逻辑(“匹配”);
  • (2) 通过正则表达式,从文本字符串中获取我们想要的特定部分(“过滤”)。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值