要求在Twitter上跟踪某些网址。
1)是否可以在Twitter Track参数中指定部分URL模式?例如如果我想搜索包含http://abc.co/的所有网址,其中包含http://abc.co/122,http://abc.co/456等。这可以通过Twitter Stream API实现吗?
2)将所有推文存储到MongoDB的有效方法是什么?推文将用于分析目的。
我正在使用Scala 2.10和MongoDB
更新:好的,在深入了解了一些Iteratee概念之后,我已经进行了快速测试,如下所示
WS.url("https://stream.twitter.com/1.1/statuses/filter.json?track=" + term)
.sign(OAuthCalculator(Twitter.KEY, tokens))
.get(_ => printingIteratee)
def printingIteratee = Iteratee.foreach[Array[Byte]] { chunk =>
val json = Json.parse(new String(chunk))
val user = (json \ "user" \ "screen_name").as[String]
val content = (json \ "text").as[String]
println("user " + user)
println("content " + content)
}
以上Iteratee用于测试副作用并且不返回任何内容。
我试图想出一个Iteratee,它接受Array [Byte]并创建一个存储在MongoDB中的对象。快速浏览一下Iteratee.fold和一些方法,但仍然不太确定如何创建一个带有Array [Byte]的Iteratee并生成一个可以存储到MongoDB的对象(比如case类Tweet)。任何创建此类Iteratee的指针都将受到赞赏。
答案 0 :(得分:1)
为了匹配的目的,URL被视为单词,这意味着整个域和路径必须包含在包含要匹配的URL的Tweet的轨道查询中。
它还包含一个表格:
example.com
将与Someday I will visit example.com
匹配,但与There is no example.com/foobarbaz
据我所知,无法使用所有子域跟踪域名。