讓我們通過實例啓動。有一個網站,說它是Twitter的一個名爲Tlitter的克隆。 Tlitter就像Twitter一樣不斷更新新的內容(其中大部分只是垃圾,因此而得名)。與twitter不同,沒有JSON/XML API以便捷的方式獲取內容。爲了從中獲取數據,您必須獲取良好的舊HTML並解析它。這是獲取該內容的唯一途徑。獲取數據(它的結構可能會發生變化)
Tlitter管理員有時會改變他們的想法。他們可能會改變網站外觀和HTML代碼,從而導致代碼提取數據失效。您無法預測何時會進行更改。它可以每週一次,一個月一次或者......從不。
創建使用內容從Tlitter,以補充從其他來源的內容Android應用程序(說這是Twitter的)。 Twitter是至關重要的,它沒有問題,因爲它有一個很好的API,但Tlitter在停止工作時可能會讓你頭疼。比方說,Twitter給你的商店價格和Tlitter給你的折扣。 App沒有Tlitter功能,但Tlitter只是更好更完整。
你不想做一個新的版本只是爲了解決每一個Tlitter相關的功能,讓你做在谷歌Appspot上這就像你的應用程序和Tlitter之間的代理應用程序。如果Tlitter發生變化,您只需更新代理應用程序,並且所有用戶都可以再次使用代理應用程序。
但是,你的應用得到普及和谷歌改變了他們的定價政策,引入「實例時間」爲Appspot上。這兩件事使你的應用程序使用幾乎所有的免費配額。你不想爲Appspot付費,你只需要以某種方式解決這個問題。
有多個解決方案,可能沒有完美的人。我問你,你會如何解決這個問題?我的思路如下:
- 下降代理應用程序的想法,過程一切手機應用程序內
- 優點:與Appspot上
- 缺點沒有出現問題,需要更新應用程序時Tlitter變化,更在用戶側網絡流量
- 代理內部應用程序緩存數據,並嘗試優化它,或者找到更好的雲服務
- 優點:用U沒問題pdates,也許更快的響應時間
- 缺點:如果應用程序將繼續得到普及它最終將使用所有可用資源,無論優化取得
- 結合兩種解決方案。使應用程序保持一些'Tlitter結構定義 文件',在線託管。來自Tlitter的內容根據文件中指定的規則提取,應用程序檢查(每天或每小時)更新該文件。
- 優點:無需更新應用程序時,時間Tlitter改變
- 缺點:一個非常複雜的解決方案,目前我不知道如何實現它,可能的安全風險等
提供的示例看起來很通用,但它幾乎完美地模擬了我的問題。你會如何解決它?如果我找到一個很好的實現方法,我會選擇解決方案1或3。
嗯,我認爲這是我爲了實現#3而正在尋找的東西。它比RegEex更方便,並且易於通過託管文件進行更新。 – user1234567 2011-12-24 13:41:08