簡體   English   中英

如何從原始HTML文件提取數據?

[英]How to extract data from a raw HTML file?

有沒有一種方法可以從原始的HTML中提取所需的數據,而這些原始HTML是沒有IDsclasses ,因此無法正確編寫? 我的意思是,假設存在網頁(配置文件)的已保存html文件,並且我想提取諸如“愛好”之類的數據。 是否可以使用PHP做到這一點?

BeautifulSoup http://www.crummy.com/software/BeautifulSoup/ ,也許嗎?

聽起來您正在尋找PHP DOM解析器,例如this 如果HTML確實沒有語義結構,那么提取所需的數據可能會有些棘手,但是DOM解析器是起點。

是的,該技術被稱為刮網 如果DOM有效,則可以使用DOM。 如果頁面是動態生成的,則生成器將使用某種結構,根據我的經驗,您始終可以隔離感興趣的元素。

如果DOM對您不起作用,則可以使用正則表達式(這就是編寫Web蜘蛛時我經常使用的表達式)。 與針對DOM層次結構編寫抓取邏輯相比,正則表達式更有效,更快捷。 因此,您需要打開一些配置文件頁面並分析靜態結構。 然后只需編寫一個正則表達式即可隔離感興趣的字段。

使用正則表達式 我開玩笑,我開玩笑。 如果您知道同一頁面的狀態,並且可以保證格式足夠相似,則可以嘗試編寫手動解析器。 另外,也有很多庫可以解析html。 我對PHP不太熟悉,無法推薦一個,但是我敢肯定,某些​​Googleing可以帶給您很多幫助。 之前,我對John Resig的純JavaScript HTML解析器很幸運。

歸根結底,如果您需要從不是以語義方式構建的html頁面中獲取語義信息,那么您可能會在編程上注定要失敗,並且最好的選擇可能是機械特克

PHP有兩種方法。 首先是使用整潔的擴展名清理文檔,以便它是有效的XHTML,因此是格式正確的XML,因此可以使用XML工具進行解析。

第二種是使用PHP版本的html5lib解析器,該解析器試圖將HTML5研究實施到當前的瀏覽器解析例程中。 如果它顯示在瀏覽器中,則html5lib可以對其進行解析。

使用這兩種方法,您最終都會得到一個DOM對象,您可以使用xpath表達式進行查詢。 由於您的理論文檔缺乏語義結構,因此您將需要從“ 3rd p內的第5跨度”的思維方式來查看文檔部分。

此處有更多信息(自鏈接警告)。

暫無
暫無

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

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