簡體   English   中英

Python-使用Python 3.6從HTML文字清除標記

[英]Python - Scrubbing tags from HTML Text using Python 3.6

我正在嘗試創建一個程序,該程序可以“查找”指定的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>

所以基本上,我被困住了。 我嘗試了幾種不同的方法,包括為每個標簽定義一個單獨的“干凈”函數,以及依次通過每個函數迭代“輸入”文本,但是我沒有任何運氣。 有什么建議么?

BeautifulSoup,只是谷歌,不客氣=)

使用Python的beautfulsoup庫 (您需要先安裝它)。

網絡上到處都是示例,可以准確地找到您所需要的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM