我一直在处理 Android 中的 Twitter 应用程序。我使用了 Oauth 身份验证并搜索了给定的关键字。
问题是速率限制。我无法执行很多搜索。
经过彻底搜索后,我发现了该链接:Using the Search API
它说:
As users, the best thing for you to do is perform your search from twitter.com/search
然后我在Google Play中找到了一个应用Twitter Search它甚至不使用身份验证并执行无限搜索。
我怀疑 Twitter Search
开发人员是否使用了该逻辑。
- 是否可以直接从
twitter.com/search
进行搜索? - 如果是,我应该遵循哪些库/方法/途径?
最佳答案
Would it be possible to make the search directly from twitter.com/search ?
从技术上讲是的,但应尽可能避免这种情况。您将不得不解析 HTML,这是一个既缓慢又容易出错的过程。
What libraries/methods/ways should I follow?
您应该坚持使用官方 API。我意识到这个速率限制有点碍事,但我相信您可以通过减少对 API 的调用总量并更有效地使用每次调用来缓解这个问题。您必须记住,这是官方的 Twitter API。 Twitter 当然希望 Twitter 应用程序既好又好,虽然每小时 100 次调用的速率限制似乎很低,但通常应该绰绰有余。如果无论如何都达到了速率限制,您只需要进行一些适当的错误处理。我知道大多数第三方 Twitter 应用程序在达到速率限制时都会卡住其内容。将显示一条错误消息,通知用户他不能再更新一小时了,但他仍然可以像以前一样继续使用该应用程序,并使用之前调用的所有缓存数据。
由于您尚未发布任何代码,我不确定还能告诉您什么,只是尽量对每个电话保持聪明。尽可能多地使用缓存数据,并且仅在绝对必要时才执行 API 调用。
编辑: 我认为解析来自 https://mobile.twitter.com/search 的数据 最适合您的情况。只需查找类为 timeline
的 div .每个<table />
在这个 div 中包含一条推文。解析起来应该不难。
我使用 HtmlCleaner 对其进行了测试:
HtmlCleaner cleaner = new HtmlCleaner();
TagNode root = cleaner.clean("https://mobile.twitter.com/search?q=asdf");
... // Filter out div with class "timeline"
List<? extends TagNode> tweets = timeLineDiv.getElementListByAttValue("class", "tweet", false, true);
关于android - 如何在android中搜索twitter.com/search并解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449880/