簡體   English   中英

你如何在 PHP 中處理無效的 HTML?

[英]How do you process invalid HTML in PHP?

我見過這個問題,它非常好,內容豐富。 但是,它不處理相當常見的情況。

假設我需要抓取大量網站(甚至是同一個域中的頁面),但該網站的作者對他的代碼不夠關心,並且有一些嚴重畸形的代碼“有點工作”。 我需要從那個網站獲取信息。

在這種情況下我該怎么做? 最好不要去í͞ń̡͢͡s̶̢̛á̢̕͘ń̵͢҉e̶̸̢̛。

是否有可能? 我必須恢復到 RegExp 嗎?

你需要一個 DOM 解析器。 PHP 有一個. 再有一些替代品(更多...只是谷歌為他們)。 如果需要,您甚至可以運行“亂碼 HTML” trhu HTML Purifier

我不知道您是如何抓取網站的,但是使用 RegExp 將允許您向抓取代碼添加許多條件。 這可能需要時間,具體取決於足跡的數量和您的 RegExp 技能。

您也可以在站點 HTML 上使用 Tidy,但這也會導致 IMO 產生奇怪的結果。

它必須是PHP嗎? Python 有一個很棒的庫,叫做Beautiful Soup“你沒有寫出那個糟糕的頁面。你只是想從中獲取一些數據” )。 根據我的經驗,我非常推薦它,如果您可以選擇,請編寫一個快速的 Python 腳本來將您的節點解析為您的 PHP 可以獲取的干凈文件。

(知道 PHP 在標題中,這並不能直接回答您的問題。如果您沒有(或不喜歡)Python 的選項,我很抱歉,只是想提供一個不錯的選擇。)

暫無
暫無

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

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