让我们通过实例启动。有一个网站,说它是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