如果我的問題不恰當,我真的很抱歉,但我找不到任何其他簡單的方法從外部網站收集數據,除了使用API。我覺得我錯過了某些東西,但我不確定是什麼,我確實在尋找可以檢索數據的方式,但我無法理解。目前我正在使用php和javascript,我正在尋找更簡單的方法從外部網站獲取數據到我的網站。如果您能向我解釋如何從外部來源檢索數據,我真的很感激。除了使用API之外,是否還有其他可能的方式從外部網頁獲取數據來開發比較購物網站?
回答
當然有一種方法,但它更加冒險,因爲它高度依賴於頁面的HTML格式(即,如果網站的佈局改變了,它將不再有效)。從CURL感謝您加載您想要檢索信息的頁面,並解析HTML結果(在PHP中搜索HTML解析器)。
你必須告訴你的腳本,它應該在哪個HTML標籤中找到信息。
作爲一個開始,您可以使用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,因爲你希望從一個網址到另一個網址像瘋了似的。
這是谷歌的話題,黑客話題,一般來說是一個非常大的科學話題,關於如何抓取這個巨大的圖表稱爲互聯網。
玩得開心,要小心。
在我看來,這是一個非常大的領域。我一直在做許多涉及「刮」到一定程度的愛好項目。有許多技巧,每次你解決一個新的網站,你必須使用你的創造力。
我不認爲所有人都存在單一指南。
有兩個主要的事情要麼是網站使用AJAX異步加載內容,要麼是網站在HTML中開始提供內容。
如果它是很容易獲得的HTML和使用curl
和regular expressions
如果你有多種選擇第一種情況,但我認爲你可以檢查在Chrome網絡電話,看看解析第二種情況實際的數據被下載。例如,它可能是非常幸運的JSON格式,或者您必須進行反向工程的自定義格式。
我能理解爲什麼它是很難習慣這種「編程」的,因爲你有實際的標記沒有控制,你必須取決於許多因素。您應該選擇自己的假設,以最大限度地提高腳本容錯能力。
很抱歉,如果你正在尋找如何從一個靜態內容抽取數據真實的基礎教程,但是這是你可能會遇到什麼樣的一般說明。
我建議你找到一個網站,不通過AJAX加載內容,有一個相對不錯的HTML標記。然後使用捲曲和正則表達式來刮擦它,然後從那裏爬上你的方式收集技巧。
注意:您可以選擇某種DOM分析器或不管他們叫,並用它來代替正則表達式,但我不認爲他們是額外必需的啓動。
謝謝你的詳細信息。:) – 2013-04-28 21:48:00
- 1. 除了使用循環之外,是否還有其他方式顯示列表?
- 2. 除了使用Cursor之外,還有其他方法可以從SQLite數據庫中獲取數據嗎?
- 3. 從外部網站獲取xml數據
- 4. 從外部網站獲取JSON數據
- 5. 除了AJAX和iframe之外,是否還有其他方式可以刷新頁面的一部分?
- 6. 從外部網站獲取API密鑰
- 7. 從外部網頁獲取數據
- 8. 除了比較像素和字節之外,還有其他方法可以比較Android中的位圖嗎?
- 9. 可能使用Javascript從其他網站獲取數據?
- 10. 是否有可能通過編程方式阻止除android上的一個網站之外的所有網站?
- 11. 除了開發人員網站,還有其他任何官方的android開發指南一站式源代碼?
- 12. 是否有可能在Azure網站上的ASP.NET內部承載除HTTP之外的其他協議?
- 13. 從其他網站獲取的數據
- 14. 除了使用BroadcastReceiver之外,是否還有其他方法可以發現藍牙?
- 15. 從外部網站拉取XML數據
- 16. 除了PIVOT之外,還有其他的方法嗎?
- 17. 是否有可能從其他網站讀取PHP代碼?
- 18. 除了Ajax之外的其他傳輸數據的方式
- 19. 從外部網站取數據而不使用網絡服務
- 20. 除了intent之外,還有其他方式可以在android studio中的活動中發送數據
- 21. 從其他網站獲取數據
- 22. 從其他網站獲取數據表
- 23. 處理iOS Exceptions除了Crittercism之外還有其他方法
- 24. JavaBean除了getter和setter之外還有其他方法嗎?
- 25. 除了轉義引號之外,還有其他方法嗎?
- 26. 除D之外還有其他語言是否有靜態if?
- 27. 是否有可能從其他網站拉文本並將其放置在使用javascript的其他網站中?
- 28. 除XSOM之外是否還有其他解析XSD的框架?
- 29. 如果可能,如何用PHP從外部網站獲取數據(文本)?
- 30. 是否可以在Opencart目錄之外的網頁上包含購物車?
謝謝。我真的很感謝你的幫助。:) – 2013-04-28 21:20:34