主页 > IT业界  > 

爬虫系列之【数据解析之正则】《二》

爬虫系列之【数据解析之正则】《二》

目录

前言

一、正则基本使用

1.1 导包

1.2 接口方法

1.3 换行匹配问题

二、实战案例

完整代码


前言

在爬虫工作中,我们主要会遇到两种类型的文本数据:

JSON格式数据

HTML文档数据

对于JSON字符串数据,通常使用Python的字典操作进行键值对提取或者使用正则语法; 对于HTML文档,则主要采用XPath表达式和CSS选择器(bs4)进行数据解析和提取。

一、正则基本使用 1.1 导包 import re 1.2 接口方法 re.findall(参数1,参数2)

参数1:写正则语法,匹配规则

参数2: 字符串数据

例1:匹配 id 的内容

import re # 1,字符串数据 str = ' <meta id="my name is zhouhuan" http-equiv="Content-Type" content="text/html;charset=utf-8">中国<共??产yes党' # 2,匹配语法 result = re.findall('id="(.*?)" http',str) # 3,打印结果 print(result)

.*?:要匹配的内容换成 .*? () :只会返回括号内的内容

 例2:匹配所有中文

import re # 1,字符串数据 str = ' <meta id="my name is zhouhuan" http-equiv="Content-Type" content="text/html;charset=utf-8">中国<共??产yes党' # 2,匹配所有中文 result = re.findall('[\u4e00-\u9fa5]',str) # 3,打印结果 print(result)


例3:过滤和替换非法字符

import re # 1,字符串数据 str = "abc?de|fg><hi:jk" # 2,过滤非法字符 result1 = re.findall('[\\\\/:*?\"<>|]',str) # 3,替换非法字符 result2 = re.sub('[\\\\/:*?\"<>|]',"_",str) # 4,打印结果 print("过滤的非法字符有:",result1) print("替换后的str字符串为:",result2)


1.3 换行匹配问题 import re # 1,换行匹配问题 str =''' <div> 中国共产党万岁 </div> ''' # 2,规则默认是在一行匹配,换行后重新匹配,所以匹配到的是空 [] result = re.findall('<div>(.*?)</div>',str) # 打印结果 print(result) # []

解决方案:待定...


二、实战案例

需求:爬取斗鱼直播星秀板块直播的主播《标题》和《网名》

链接(url):星秀直播_星秀视频_斗鱼直播

分析步骤:

1,先抓包找到需要的目标 url

2,先打印一下爬取到的所有数据

完整代码 import re import requests # 实战之爬取斗鱼星秀板块主播标题 # 1,目标url url = ' .douyu /wgapi/ordnc/live/web/room/mixList/2/1008/0/1?' # 2,身份伪装 header={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" } # 3,发起请求 response = requests.get(url=url,headers=header) # 4,打印响应内容(确认是否获得响应) # print(response.text) # 5,使用正则解析:主播标题 title_list = re.findall('"rn":"(.*?)"',response.text) print(title_list) # 6,使用正则解析:主播名字 name_list = re.findall('"nn":"(.*?)"',response.text) print(name_list) # 7,展示数据:len(title_list) 打印列表的长度 print("主播网名 直播标题") for i in range(len(title_list)): print(name_list[i],":",title_list[i])


 

标签:

爬虫系列之【数据解析之正则】《二》由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“爬虫系列之【数据解析之正则】《二》