1
我使用lxml來清理html數據,但在某些情況下,lxml也刪除了有效標記。它刪除具有有效的主機的iframe標籤,但雙斜槓(//)lxml刪除雙斜槓iframe
代碼示例啓動:
>>> cleaner = Cleaner(host_whitelist=['www.youtube.com'])
>>> iframe = '<iframe src="//www.youtube.com/embed/S2S5I5GHkDQ"></iframe>'
>>> cleaner.clean_html(iframe)
'<div></div>'
但是對於普通的URL(不含雙斜線),它工作正常
>>> cleaner = Cleaner(host_whitelist=['www.youtube.com'])
>>> iframe = '<iframe src="https://www.youtube.com/embed/S2S5I5GHkDQ"></iframe>'
>>> cleaner.clean_html(iframe)
'<iframe src="https://www.youtube.com/embed/S2S5I5GHkDQ"></iframe>'
我需要做什麼,使lxml瞭解它是有效的URL?
感謝。
你可以看到有「whitelist_tags: host_whitelist可以包含的一組標籤**默認是iframe並嵌入**您可能希望包含腳本等其他標籤,或者您可能想實現allow_embedded_url以獲得更多控制。包括所有標籤「。 您也可以在我的示例中看到,當提供給主機(https)的模式正在工作時,它與「嵌入」參數無關 – user3164429