我很難獲取網站生成的HTML。 HTML包含一些未關閉的標籤。如何使用Nokogiri正確修復未封閉的HTML標記
例如:
<div>
<li>
<div>
<div>
test
</div>
<li>
<div>
test
</div>
解析HTML:
html = Nokogiri::HTML(open('origin.html'))
結果:
或者,在HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<div>
<li>
<div>
<div>
test
</div>
<li>
<div>
test
</div>
</li>
</div>
</li>
</div>
</body>
</html>
我認爲正確的事情會是這樣的:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<body>
<div>
<li>
<div>
<div>
test
</div>
</div>
</li>
<li>
<div>
test
</div>
</li>
</div>
</body>
</html>
不知道如何解決這個問題?換成另一個寶石?使用正則表達式在解析之前更改HTML?
請正確縮進代碼塊,很難看到每個標籤關閉的位置。 –
@AlexeyShein完成了!謝謝! –
而不是使用圖像來演示數據或代碼問題,將文本複製並粘貼到問題中,並將其正確格式化以提高可讀性。這有助於我們爲您提供幫助,因爲我們可以重複使用這些數據,而無需輸入數據。 –