2012-04-15 97 views
1

是否可以使用PHP cURL,HTML DOM解析器或任何其他方法提取遠程HTML頁面的一部分並將其打印在另一頁上,從而保留原始格式樣式,圖像,標籤運作? 例如,如何提取中央列的內容(帶有製表符和格式,保留原文的外觀),從http://ru.yahoo.com/提取HTML頁面的一部分

據我所知,腳本應該處理外部CSS,以便返回的內容與原始內容具有相同的外觀。如果可能的話,什麼是最合適的方式?如果是的話,一個例子將不勝感激。我看了幾個例子,但沒有找到任何解決方案,我的情況。

+5

我有這種感覺,你需要這種東西有點不道德。但是,我怎麼知道。 – Alexander 2012-04-15 20:52:23

+0

只是想着同樣的事情。 – Dale 2012-04-15 20:52:53

+0

@亞歷山大。他可能想複製慈善專欄... – gdoron 2012-04-15 20:54:18

回答

2

好吧,如果我不得不迅速(讀:非常骯髒)做,我會做的是這樣,我認爲:

  1. 使用標準的PHP
  2. 使用HTML拉動來自遠程服務器的HTML你 偷走 從其他網站取得,並在底部添加自己的HTML。
  3. 還可以添加您自己的CSS來隱藏您不希望顯示的其他網站的html,併爲您自己的html設置樣式。

小提琴,直到它看起來不錯。但是:我認爲這會因爲相同的域策略而中斷外部JS文件的加載。

一個很好的方法是這樣的:

  1. 使用標準的PHP
  2. 從遠程服務器拉出HTML解析一些PHP HTML解析器HTML和去掉所有的外部CSS和JS文件和拉那文件也是如此。
  3. 使用XPath提取您需要的零件。
  4. 使用您自己的HTML創建一個新的HTML文檔,您需要的部分以及新下載的CSS和JS文件的新鏈接。也可以添加自己的CSS和JS來設置結果的樣式。

你知道的:RSS是爲此而發明的,如果他們沒有提供RSS源,他們很可能不希望你獲得內容並將其發佈到你自己的網站上。 :P

+0

那個被偷走的人應該會獲得幽默徽章! ** + 1 ** – gdoron 2012-04-15 21:04:39

+0

@戈登感謝編輯職位。如果我的問題顯得不道德並引發了爭議,我很抱歉。我不是故意竊取內容,而且它是公開的,並且它們也提供外部報紙的內容。我看起來像這樣的內容的任何頁面的解決方案,這只是一個很好的例子。是的,我知道爲此發明的RSS,並且也有從任何內容創建RSS的方法。 – fxgreen 2012-04-15 21:42:14