【问题标题】:How to display tweets on an html page based on a dynamic search query如何根据动态搜索查询在 html 页面上显示推文
【发布时间】:2015-11-22 06:02:44
【问题描述】:

我正在创建一个网页,用户可以在其中输入任何搜索词,如“地震”或“选举”等,所有基于搜索词的最新推文都应显示在我的 html 页面上。 另外,我想为搜索词对应的推文中出现频率最高的词创建一个词云。

var Twit = require('twit')

var T = new Twit({
    consumer_key:         'xxxxx'
   , consumer_secret:      'xxxxx'
   , access_token:         'xxxxx'
   , access_token_secret:  'xxxxx'
  })

 T.get('search/tweets', { q: 'earthquake', count: 1000 }, function(err, data, response) {
  console.log(data)
 })

我想知道如何在我的 html 页面中显示结果。通过在我的页面上嵌入时间线(通过创建小部件),我能够看到 Twitter 提要。但这是针对单个查询的,不是动态的。

有什么想法吗?请帮忙。谢谢

【问题讨论】:

  • 基于您使用 require('twit') 的事实,我假设您使用的是 node.js?你对节点有多熟悉?
  • 我问所以我知道我的回答应该有多详细:)
  • 嗨,尼克,我不是专家,但我了解 nodejs 并且可以在几乎没有研究的情况下使用 nodejs。谢谢

标签: html node.js twitter word-cloud


【解决方案1】:

如果您不反对使用 express 创建自己的服务器,您可以这样做:(这是我最近为我的一个学生制作的视频,使用相同的 twit 模块提出了类似的问题)@987654322 @(密码:koy)

更新

在该视频中,客户端 index.html 视图从填充来自服务器的推文的元素的 innerHTML 创建推文数组,如下所示:

data = document.getElementById('data').innerHTML;
twArr = data.split(',');

您可以通过在每个空格 (" ") 而不是每个 "," 处拆分字符串来从同一个 innerHTML 创建一个包含每个单词的数组,如下所示:

twArr = data.split(' ');

然后像这样将它传递到 d3 示例中...

.words(twArr.map( ...etc

【讨论】:

  • 你能告诉我如何将这些推文拆分成单词,然后将出现频率更高的单词传递给 D3js 以创建 wordcloud。我参考了这个链接:jsfiddle.net/adiioo7/rutpj/light 但是,看起来我必须以 json 格式传递单词?有什么想法吗?
  • 看起来单词是作为数组传递的,我将使用代码编辑上面的答案,了解您如何执行此操作
  • 谢谢尼克。您能否建议我如何删除标点符号和“A”、“to”、“is”等词。我只想显示一个云,其中包含最新推文中出现频率更高的词。
  • 如果你有一个特定的单词列表要删除,你可以将它们包含在一个单独的数组中,然后使用像 jsfiddle.net/ueL3n6d6/1 这样的函数来创建一个新数组来删除该列表要从原始数组中删除的单词
  • 嗨@Katie 这对你有用吗?如果是这样,您应该接受未来偶然发现该问题的用户的答案:)
猜你喜欢
  • 2013-08-04
  • 1970-01-01
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
相关资源
最近更新 更多