【Data_Talks】Python学习笔记-Ch5正则表达式

【Data_Talks】Python学习笔记-Ch5正则表达式_第1张图片

爬虫项目的重要一步就是分析网页结构,抓取并返回特定的value,比如爬房价的租金、房型、小区等。此时需要找到request返回的网页内容的特定标签比如,

等,并返回到dataframe,再进行数据清洗和处理。一般可以用的两个工具(库):1. 正则表达式(re);2(beautifulsoup4)。下面就介绍了正则表达式的主要功能:即匹配、查找、分割、替换等。

1. 为什么要在字符串前加r'?

避免将字符串中可能出现的\等转意字符进行转意,使用r后,则其作为一个raw string。比如\n在转意的场景下为“换行”命令;而\n在raw string下则为两个字符分别是\,n.

2. match与search的差异

match从头部开始匹配,一旦失败,返回结果;search则查找整个字符串,直到找到一个匹配值;

【Data_Talks】Python学习笔记-Ch5正则表达式_第3张图片

3. 正则修饰符

用以限制通用的匹配规则

【Data_Talks】Python学习笔记-Ch5正则表达式_第4张图片

4.正则表达式模式

4.1字母和数字代表他们本身

4.2\字母和\数字通常有特殊意义

【Data_Talks】Python学习笔记-Ch5正则表达式_第5张图片

4.3标点符号通常有特殊意义,除非被转义他们才是他自己

【Data_Talks】Python学习笔记-Ch5正则表达式_第6张图片

4.4反斜杠本身需要使用反斜杠转义:r'\'='\\'

5. 项目实战-通过正则表达式爬取链家的租房页详情url

5.1 网页结构分析

链家的北京租房信息页是一个租房信息清单(如下图),共计100页(每页30套房源),这里以其中的第一页为例,一起看看如何批量抓取当页所有房源的详情页url。大体的思路是:通过网页的机构分析,找出详情页url在汇总页的一个独特标签,从而使用正则表达式对其进行查找和返回(re.findall())

【Data_Talks】Python学习笔记-Ch5正则表达式_第7张图片

这里要推荐chrome浏览器超好用的F12开发者工具,必须是网页机构分析利器。开发者工具的左上角小图标可以对网页对应元素进行查找对应code。

经过分析发现:详情页的url均出现在

于是有了下面这个正则表达式规则pi='.*?

【Data_Talks】Python学习笔记-Ch5正则表达式_第8张图片

5.2 代码

大致代码如下:

【Data_Talks】Python学习笔记-Ch5正则表达式_第9张图片

你可能感兴趣的:(【Data_Talks】Python学习笔记-Ch5正则表达式)