[英]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.