android - 如何在android中搜索twitter.com/search并解析数据

标签 android search twitter

我一直在处理 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/

相关文章:

Android 3.0 操作栏搜索 View

php - 根据 where 子句选择行时,如何匹配完整的单词?

ios - 将登录详细信息注入(inject) TwitterKit

javascript - Twitter 事件触发但没有实际事件

python - Twitter,错误 : urllib. 错误。HTTPError:HTTP 错误 401:未经授权

android - 通知 Android 后显示 Activity

android - fragment 不会改变其他 fragment 的背景颜色

ios - NSnotification 中心不工作 iOS

android - 如何在 Parcelable 类中写入和读取 org.joda.time.Date

android - 使用标志 CLEAR_TASK/NEW_TASK 从一项 Activity 到另一项 Activity 的滞后/延迟