![](/img/trans.png)
[英]Scrapy. How to remove style attribute (class or id attribute) from tags in parsed HTML
[英]Python - Remove 'style'-attribute from HTML
我在Python中有一個String,其中有一些HTML。 基本上看起來像這樣。
>>> print someString # I get someString from the backend
"<img style='height:50px;' src='somepath'/>"
我嘗試以PDF顯示此HTML。 因為我的PDF生成器無法處理樣式屬性(而且不能,我不能再使用另一個),所以必須將其從字符串中刪除。 所以基本上,它應該像這樣:
>>> print someString # I get someString from the backend
"<img style='height:50px;' src='somepath'/>"
>>> parsedString = someFunction(someString)
>>> print parsedString
"<img src='somepath'/>"
我想做到這一點的最佳方法是使用RegEx,但是我並不十分熱衷。 有人可以幫我嗎?
我不會為此使用RegEx,因為
好吧,那我該怎么做。 我會使用值得信賴的BeautifulSoup
! 使用以下命令以pip進行安裝:
pip install beautifulsoup4
然后,您可以執行以下操作刪除樣式:
from bs4 import BeautifulSoup as Soup
del Soup(someString).find('img')['style']
這首先解析您的字符串,然后找到img
標簽,然后刪除其style
屬性。
它也應該與任意字符串一起工作,但是我不能保證。 也許您會想到一個邊緣保護套。
請記住,使用RegEx解析HTML字符串並不是最好的主意。 互聯網和Stackoverflow充滿了為什么無法實現的答案。
編輯:只是踢,你可能想看看這個答案 。 當有人說甚至喬恩·斯基特(Jon Skeet)也做不到時,您知道事情很嚴重。
使用RegEx處理HTML是一個非常糟糕的主意,但是如果您真的想使用它,請嘗試以下操作:
/style=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?/ig
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.