【问题标题】:Python - Scrubbing tags from HTML Text using Python 3.6Python - 使用 Python 3.6 从 HTML 文本中清除标签
【发布时间】:2017-05-18 21:06:22
【问题描述】:

我正在尝试创建一个程序,该程序可以“查找”指定的 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")

这段代码让我得到了这段文字(不会故意删除&lt;span&gt;标签,但也不会再次返回&lt;/p&gt;):

<p><span style="font-family: Arial,Arial; font-size: 12px; color: #ffffff;">Example Company | Technical How-To</span></p>

所以基本上,我被困住了。我尝试了几种不同的方法,包括为每个标签定义一个单独的“干净”函数,并按顺序通过每个函数迭代“输入”文本,但我没有任何运气。有什么建议吗?

【问题讨论】:

标签: python html


【解决方案1】:

BeautifulSoup,随便谷歌一下,不客气 =)

【讨论】:

    【解决方案2】:

    使用 Python 的beautfulsoup library。 (您需要先安装它)。

    网络上有很多例子可以准确地找到你需要的东西

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 1970-01-01
      • 2022-01-19
      • 2011-01-11
      • 2017-07-01
      • 2014-05-22
      • 2018-06-19
      • 1970-01-01
      相关资源
      最近更新 更多