有沒有辦法使用lxml.html刪除/轉義html標籤,而不是美麗的有一些xss的問題?我嘗試使用更清潔,但我想刪除所有的HTML。刪除python中的所有html?
回答
嘗試在元素上使用.text_content()
方法,在使用lxml.html.clean
來擺脫不需要的內容(腳本標籤等)後可能是最好的方法。例如:
from lxml import html
from lxml.html.clean import clean_html
tree = html.parse('http://www.example.com')
tree = clean_html(tree)
text = tree.getroot().text_content()
我相信,這個代碼可以幫助您:
from lxml.html.clean import Cleaner
html_text = "<html><head><title>Hello</title><body>Text</body></html>"
cleaner = Cleaner(allow_tags=[''], remove_unknown_tags=False)
cleaned_text = cleaner.clean_html(html_text)
經過一個快速的實驗,這個解決方案似乎比這個更好的工作,例如http://stackoverflow.com/a/5332984/787842,但我想知道更多關於正確參數化'Cleaner'對象的方法(因爲有很多選項)。例如在這種情況下,在邏輯上,讓一個空的'allow_tags'列表和'remove_unknown_tags'設置爲'False'在我看來有點奇怪。 – cjauvin 2015-05-11 14:40:04
@cjauvin:當然,你是對的!這是一種破解。但是我確定沒有人想要在參數'remove_tags'中指定所有必須刪除的標籤,如果他們想要刪除它們。不幸的是,在這種情況下,'Cleaner'的實現鼓勵用戶使用帶有'remove_unknown_tags'的'allow_tags'來達到這個目的https://github.com/lxml/lxml/blob/54a8bfedcd0f32274a4ebf9e2d8e391fe759aba5/src/lxml/html/clean.py#L387 – dni 2015-05-13 12:31:17
- 1. 刪除HTML頁面中的所有JavaScript
- 2. Python HTML刪除
- 3. Python和Django。從html中刪除所有js
- 4. PHP刪除所有的HTML,但評論
- 5. 刪除兩點之間的所有HTML
- 6. 在Python中刪除HTML塊
- 7. 刪除所附的html
- 8. 刪除「?」後的所有內容python
- 9. 安全地從Python中的字符串中刪除所有的HTML代碼
- 10. 刪除所有元素\ html,但輸入
- 11. Codeigniter刪除所有html標籤
- 12. qgis 2.12 - 通過python刪除所有TextAnnotations
- 13. 從rails中的屬性中刪除所有html標記
- 14. 使用kendoEditor從MVC中的HTML TextArea中刪除所有標記
- 15. 從Nokogiri中刪除HTML中的所有外部資源
- 16. 如何刪除Python中的字典中的所有0?
- 17. 刪除所有Python版本並清除安裝Python 3
- 18. 刪除tinyeditor中的所有html標籤所見即所得的編輯器
- 19. 如何刪除除img以外的所有html標籤?
- 20. Рhppreg_replace - 刪除除html標記以外的所有文本IMG
- 21. 刪除除標記外的所有html標記
- 22. JQUERY:如何刪除除BR和IMG所有的HTML標籤DIV
- 23. Python - 從文件夾中的所有文件中刪除重音
- 24. NSFetchedResultsController刪除所有
- 25. 刪除所有列
- 26. 刪除所有django.contrib.messages
- 27. 刪除所有行
- 28. 刪除所有,但
- 29. 使用JavaScript刪除HTML中的所有表格
- 30. 從HTML字符串中刪除所有的div標籤
如何beautifulsoup具有跨站點腳本問題? – jball 2010-10-19 22:40:02