2010-08-01 149 views
0

有朋友問我這個,我無法回答。如何從另一個網站'抓取'內容

他問:我做這個網站,您可以存檔您的網站...

它的工作原理是這樣,你進入你的網站,如,something.com然後我們的網站抓取該網站像內容圖像和所有這些,並將其上傳到我們的網站。然後,即使持有something.com的服務器關閉,人們也可以在oursite.com/something.com上查看該網站的完整副本。

他怎麼能這樣做? (PHP?)和什麼會有一些要求?

+2

「您可以將您的網站存檔的網站」http://web.archive.org – BoltClock 2010-08-01 13:10:55

+1

如果您熟悉php,則可以使用名爲WebCrawler和CssDom的Symfony2組件。 Symfony的創建者已經彙集瞭如何使用組件進行網頁抓取的演示。 https://github.com/fabpot/Goutte – xzyfer 2011-02-08 12:41:17

回答

1

這聽起來像你需要創建一個webcrawler。儘管我會推薦使用C++(使用cURL),Java(使用URLConnection)或Python(w/urrlib2)來爲Web爬蟲編寫任何語言。你可能也可以用curl或wget命令和BASH快速破解一些東西,儘管這可能不是最好的長期解決方案。此外,不要忘記,如果您抓取某人的網站時應該下載,解析並尊重「robots.txt」文件。

0

使用wget。無論是linux版本還是gnuwin32軟件包的windows版本。 get it here

+0

我認爲使用wget只會讓你的HTML。如果該網站有其他來源(圖片,文件..),你仍然會引用相同的(可能不可用的)資源。如果要提供臨時「故障轉移」網站,他可能也需要下載資源。 – Yossale 2010-08-01 13:19:08

+0

這是錯誤的,wget可以創建鏡像並抓取其他資源。當然,你必須正確設置它。 – Femaref 2010-08-01 17:44:47

0
  1. 使用curl獲取html。
  2. 現在將所有圖像,CSS,JavaScript改爲絕對網址,如果它們是相對URL的話。 (這有點不道德)。您可以從您的網站獲取所有這些資源並進行託管。
  3. 尊重所有網站的「robots.txt」。 read here