netspirit 发表于 2020-10-25 19:49

python正则提取网页信息以后如何去除html转义字符?

本帖最后由 netspirit 于 2020-10-26 21:03 编辑

如何把从网页里面用正则提取的内容去除html代码并且变成他们原本的字符?
比如' & &qt &nsp 之类一堆乱起八糟的 如何把这些字符自动转换成原本的 字符啊?
还有提取过程中还有html标签残留,比如<br>之类的,如何去除干净?
主要是第一个问题,如何把正则提取的文本里面的转义字符变成他们原来的样子啊?

alicc 发表于 2020-10-25 20:02

获取源码后 先把特定字符替换一遍,然后再进行操作其他的。比如(A)>替换>()

风绕柳絮轻敲雪 发表于 2020-10-25 20:03

https://blog.csdn.net/zhusongziye/article/details/78786519自己看版本选择解决办法

冥界3大法王 发表于 2020-10-25 21:02

网页标签,当然正则首选前后断言了。
另外XML节点提取也能吧,后续还没玩到。

rsnodame 发表于 2020-10-25 21:08

风绕柳絮轻敲雪 发表于 2020-10-25 20:03
https://blog.csdn.net/zhusongziye/article/details/78786519自己看版本选择解决办法

{:301_997:}标准库的办法赛高

netspirit 发表于 2020-10-25 21:16

冥界3大法王 发表于 2020-10-25 21:02
网页标签,当然正则首选前后断言了。
另外XML节点提取也能吧,后续还没玩到。

其他的选择器之前按照教程各种出错 有的网页内容一变就不能用了 比如前面几个表格能用 后面几个表格就不能用了........

萌新与小白 发表于 2020-10-25 21:49

在看正则,第二个问题笔记里有,第一个问题有人答了。
(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容。
平衡组的一个最常见的应用就是匹配HTML,如匹配嵌套的<div>标签<div[^>]*>[^<>]*(((?'Open'<div[^>]*>)[^<>]*)+((?'-Open'</div>)[^<>]*)+)*(?(Open)(?!))</div>

yjn866y 发表于 2020-10-25 22:17

本帖最后由 yjn866y 于 2020-10-25 22:32 编辑


用python处理html代码的转义与还原

转义 escape:

import html
s = cgi.escape("""& < >""")
print(s)
>>>'&amp; &lt; &gt;'

反转义 unescape:

#使用标准库
import html
s = html.unescape('&amp; &lt; &gt;')
print(s)
>>> '& < >'

netspirit 发表于 2020-10-25 22:55

yjn866y 发表于 2020-10-25 22:17
用python处理html代码的转义与还原

转义 escape:


那如何去除</a> <br>之类的而且不伤害其他文本呢?我记得还有一些其他的段落标记怎么去除?我知道正则可以直接去除 <> 但是好像有一些标记不带方框吧?或者正文里面有方框不久误删了呀?

yjn866y 发表于 2020-10-25 23:12

搬运过来的,,看一下吧

在Python中使用正则表达式去掉字符串里的html标签 - 袁艺明 - 博客园https://www.cnblogs.com/yuanyiming/p/9902725.html
页: [1] 2
查看完整版本: python正则提取网页信息以后如何去除html转义字符?