2013-04-28 18 views
1

如果我的問題不恰當,我真的很抱歉,但我找不到任何其他簡單的方法從外部網站收集數據,除了使用API​​。我覺得我錯過了某些東西,但我不確定是什麼,我確實在尋找可以檢索數據的方式,但我無法理解。目前我正在使用php和javascript,我正在尋找更簡單的方法從外部網站獲取數據到我的網站。如果您能向我解釋如何從外部來源檢索數據,我真的很感激。除了使用API​​之外,是否還有其他可能的方式從外部網頁獲取數據來開發比較購物網站?

回答

2

當然有一種方法,但它更加冒險,因爲它高度依賴於頁面的HTML格式(即,如果網站的佈局改變了,它將不再有效)。從CURL感謝您加載您想要檢索信息的頁面,並解析HTML結果(在PHP中搜索HTML解析器)。

你必須告訴你的腳本,它應該在哪個HTML標籤中找到信息。

+0

謝謝。我真的很感謝你的幫助。:) – 2013-04-28 21:20:34

1

作爲一個開始,您可以使用curl從其他網站獲取html。請在這裏http://php.net/manual/en/book.curl.php

還檢查了,http://sourceforge.net/projects/snoopy/,或者http://cuab.de

你也希望看到這個例子http://www.bitrepository.com/how-to-create-a-simple-web-data-extractor.html

有很多圖書館在那裏。基本上你把網頁當成一個大STRING,然後你開始尋找線索,如圖像或網址等通過使用字符串處理技術解析

下面是一個示例從網站http://www.geekality.net/2011/05/12/php-how-to-get-all-images-from-an-html-page/獲取圖像。

另外考慮到某些網站由於安全原因不允許捲曲fopen。他們不希望你偷工作。你從網站上獲取內容的時間也有限制,並且網絡服務器可能會阻止你的IP,因爲你希望從一個網址到另一個網址像瘋了似的。

這是谷歌的話題,黑客話題,一般來說是一個非常大的科學話題,關於如何抓取這個巨大的圖表稱爲互聯網。

玩得開心,要小心。

2

在我看來,這是一個非常大的領域。我一直在做許多涉及「刮」到一定程度的愛好項目。有許多技巧,每次你解決一個新的網站,你必須使用你的創造力。

我不認爲所有人都存在單一指南。

有兩個主要的事情要麼是網站使用AJAX異步加載內容,要麼是網站在HTML中開始提供內容。

如果它是很容易獲得的HTML和使用curlregular expressions

如果你有多種選擇第一種情況,但我認爲你可以檢查在Chrome網絡電話,看看解析第二種情況實際的數據被下載。例如,它可能是非常幸運的JSON格式,或者您必須進行反向工程的自定義格式。

我能理解爲什麼它是很難習慣這種「編程」的,因爲你有實際的標記沒有控制,你必須取決於許多因素。您應該選擇自己的假設,以最大限度地提高腳本容錯能力。

很抱歉,如果你正在尋找如何從一個靜態內容抽取數據真實的基礎教程,但是這是你可能會遇到什麼樣的一般說明。

我建議你找到一個網站,不通過AJAX加載內容,有一個相對不錯的HTML標記。然後使用捲曲和正則表達式來刮擦它,然後從那裏爬上你的方式收集技巧。

注意:您可以選擇某種DOM分析器或不管他們叫,並用它來代替正則表達式,但我不認爲他們是額外必需的啓動。

+0

謝謝你的詳細信息。:) – 2013-04-28 21:48:00

相關問題