用正则去除html字符串中的标签
先从某网页上获取的部分html字符串(含标签),目的是去除标签。
# 从某网页上获取的部分html字符串(含标签)
# 目的:去除标签
html_str = """<dd class='job_bt'>
<h3 class="description">职位描述:</h3>
<div class="job-detail">
<p>岗位职责:</p>
<p>1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作</p>
<p>2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程</p>
<p>任职要求:</p>
<p>1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。</p>
<p>2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。</p>
<p>3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。</p>
<p>4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。</p>
<p>5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。</p>
<p>6、熟练使用Unix、Linux,能够进行shell编程。</p>
<p>7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。</p>
<p>8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。</p>
<p>9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。</p>
<p>10、有良好的沟通能力、表达能力、声音清晰自然。</p>
<p>11、有教学经验,授课能力优秀者优先</p>
</div>
</dd>"""
分成两步:1、先匹配带有“/”的标签。如</>
为什么要这样做,因为<p>
和</p>
混在了同一个字符串里,难以提取出来。如下:‘<p>
岗位职责:</p>
’
nums = re.findall(r'<.+>',html_str)
print(nums)
# 打印结果
["<dd class='job_bt'>", '<h3 class="description">职位描述:</h3>', '<div class="job-detail">', '<p>岗位职责:</p>', '<p>1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作</p>', '<p>2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程</p>', '<p>任职要求:</p>', '<p>1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。</p>', '<p>2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。</p>', '<p>3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。</p>', '<p>4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。</p>', '<p>5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。</p>', '<p>6、熟练使用Unix、Linux,能够进行shell编程。</p>', '<p>7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。</p>', '<p>8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。</p>', '<p>9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。</p>', '<p>10、有良好的沟通能力、表达能力、声音清晰自然。</p>', '<p>11、有教学经验,授课能力优秀者优先</p>', '</div>', '</dd>']
2、再匹配其他的所有标签。
html = re.sub(r'<.+>','',num)
整体的代码如下:
import re
# 从某网页上获取的部分html字符串(含标签)
# 目的:去除标签
html = """<dd class='job_bt'>
<h3 class="description">职位描述:</h3>
<div class="job-detail">
<p>岗位职责:</p>
<p>1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作</p>
<p>2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程</p>
<p>任职要求:</p>
<p>1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。</p>
<p>2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。</p>
<p>3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。</p>
<p>4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。</p>
<p>5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。</p>
<p>6、熟练使用Unix、Linux,能够进行shell编程。</p>
<p>7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。</p>
<p>8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。</p>
<p>9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。</p>
<p>10、有良好的沟通能力、表达能力、声音清晰自然。</p>
<p>11、有教学经验,授课能力优秀者优先</p>
</div>
</dd>"""
# 匹配所有`</>` 标签,并替换为空(去除`</>`)
nums = re.sub(r'</.+>','',html_str)
html = ''
# 遍历取去除</>标签后的html字符串
for i in nums:
html += i
process_html = re.sub(r'<.+>','',html)
print(process_html)
输出结果:
职位描述:
岗位职责:
1、负责Java高阶课程大纲、讲义、视频等教学资料的研发工作
2、负责课程的升级工作,能够对现有课程中的不足进行分析,快速熟悉课程、升级课程
任职要求:
1、精通Java编程思想,5年及以上使用Java语言进行web开发的经验。
2、具备大中型项目的系统架构及系统设计能力,至少完整的从事过两个大型互联网项目的设计与开发工作。
3、熟悉Mysql、Redis、MongoDB等常用的存储技术,具备优秀的数据库设计能力。
4、熟悉Spring、SpringMVC、Mybatis、ES、MQ等常用技术的工作原理及应用。
5、精通Spring Cloud、Dubbo等主流的微服务开发与治理框架。
6、熟练使用Unix、Linux,能够进行shell编程。
7、熟悉Kubernetes、Docker的使用,深入理解持续集成思想。
8、熟悉软件技术文档的编写,具备良好的文档编写习惯和代码书写规范。
9、对技术有强烈的求知欲,可独立承担挑战性的技术研究工作。
10、有良好的沟通能力、表达能力、声音清晰自然。
11、有教学经验,授课能力优秀者优先