我正在尝试创建一个程序,可以“找到”指定的HTML标记,并用其他东西“替换”这些标记(使用作为字符串导入的HTML文本)。
免责声明:我对python很新,所以我可能会遗漏一些明显的东西。 另外 - 根据以前与此类似的帖子主题,我推测使用正则表达式模块可能最适合这个项目(我会采取替代方案的建议)。
以下是我的“输入”文字:
<p align="left"><span style="font-family: Arial,Arial; font-size: 12px; color: #ffffff;">Example Company | Technical How-To</span></p>
这就是我想要的“输出”文字:
<p>Example Company | Technical How-To</p>
以下是我的“输出”文字的内容:
</p>
这是我用来获得答案的python代码:
while True:
import re
print("Enter HTML Text Below")
original = input("")
def cleaner(raw_html):
cleantextp = re.sub('<p.*?>', '<p>', raw_html)
cleantextspan1 = re.sub('<span.*?>', '', cleantextp)
cleantextspan2 = re.sub('<.*?/span>', '', cleantextspan1)
return cleantextspan2
if len(original) > 0:
print(cleaner(original))
else:
print("Please try again")
对我来说奇怪的是,当我将我定义的函数“分开”并让它一次“清理”一个指定的标签时,它似乎有效。例如:
while True:
import re
print("Enter HTML Text Below")
original = input("")
def cleaner(raw_html):
cleantextp = re.sub('<p.*?>', '<p>', raw_html)
return cleantextp
if len(original) > 0:
print(cleaner(original))
else:
print("Please try again")
此代码向我提供此文本(不会故意删除<span>
标记,但也不会再次返回</p>
:
<p><span style="font-family: Arial,Arial; font-size: 12px; color: #ffffff;">Example Company | Technical How-To</span></p>
所以基本上,我被卡住了。我尝试了几种不同的方法,包括为每个标签定义一个单独的“干净”函数,并按顺序迭代每个函数的“输入”文本,但我没有任何运气。有什么建议吗?
答案 0 :(得分:1)
BeautifulSoup,只是谷歌,你,欢迎=)
答案 1 :(得分:1)
使用Python beautfulsoup library。 (你需要先安装它。)
网上有很多例子可以找到你需要的东西