正则表达式re.sub()常见问题及解决(换行匹配+标签清洗)

您所在的位置:网站首页 pyhton换行符 正则表达式re.sub()常见问题及解决(换行匹配+标签清洗)

正则表达式re.sub()常见问题及解决(换行匹配+标签清洗)

2023-11-05 02:18| 来源: 网络整理| 查看: 265

首先大家都知道re.sub()简单用法:

#re.sub()会替换满足条件的所有式子,返回被替换后的文本 text = "阅读量 9999, 点赞量 7788" ret_sub = re.sub(r'\d+', '8800', text) 结果: 阅读量 8800, 点赞量 8800

 

 

但是有陷阱:这个例子之所以匹配全部成功是因为它所检查的是'\d',也就是数字格式,遇到不是数字的就停止了

现在做另一个例子,我们找了一个网页准备爬它的数据:

 

 

 

今天这个例子先直接复制下来,可以看到数据很乱,嵌套着很多标签,我们接下来要清洗这些数据,那就是把这些标签去掉,只留文字,在说sub方法之前还有一个问题:我第一次粘贴文本给test赋值时,代码为:

text = "

1.通过爬虫技术,实现PMS系统与多个销售平台(airbnb、途家、美团榛果等)的订单房态同步、自动发房、价格调整工作;

工作职责:

2.完成智能定价所需要的数据爬取及数据分析等工作;

3.完成IM针对房源咨询的自动回复的开发工作。

任职资格:

1、Python基础良好,2-4年相关岗位工作经验;

2、大学全日本制本科及以上学历;

3、掌握网络爬虫基本类库使用,了解爬虫架构且熟练使用至少一种爬虫框架(Scrapy、PySpider等)进行开发,了解反爬虫、反反爬机制;

4、熟悉WebDriver、Selenium、PhantomJS等常用工具;

5、具有一定前端基础,拥有分析结构化和非结构化数据能力;

6、掌握正则表达式、搜索策略、算法、数据聚类以及重组并可以独立完成对抓取数据进行信息提取、去重和清洗;

7、熟练使用MySQL数据库,了解非关系型数据库(Redis、MongoDB等);

8、了解Scrapy+Redis分布式策略为加分项。

"

结果疯狂报错,我????怎么粘贴个文本还有错了,百度无果,突然想到引号匹配的问题:test字符串用双引号包裹,div标签里也有双引号,直接配对,导致错误,解决方法就是要么把文本里的双引号转义,要么改外面包裹的双引号,标签很多,可想有多麻烦,直接把外层双引号改为三引号,问题解决!接下来说正题:

要去掉标签,可以想到那就用re.sub()方法,用空字符串去替代每个标签,初始想法:

text = re.sub(r'', "", text)

这样做了之后可以发现结果是全空,接下来又加了

text = re.sub(r"^", "", text)

发现结果是只过滤掉了第一个标签,接下来的数据全没有动,百度了一下,发现原来是换行出了问题,匹配到第一个



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3