2013-03-11 59 views
-2

要求在Twitter上跟蹤某些URL。將推文存儲到Mongodb中

1)可以在Twitter Track參數中指定部分URL模式嗎?例如如果我想搜索包含http://abc.co/的所有網址,其中包括http://abc.co/122,http://abc.co/456等。這可能與Twitter流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是一個測試是爲了副作用而不返回任何東西。

我想要拿出一個採用Array [Byte]並創建一個對象來存儲在MongoDB中的Iteratee。有一個快速瀏覽Iteratee.fold和很少的方法,但仍然不太確定如何創建一個接受Array [Byte]並生成一個可存儲到MongoDB的對象(如case class Tweet)的Iteratee。任何創建這樣的Iteratee指針將不勝感激。

+0

就#2而言,您應該編寫代碼,然後優化它,您可以在[代碼評論](http://codereview.stackexchange.com/) – EECOLOR 2013-03-11 10:04:56

+0

#2發佈它也非常類似於您的其他問題[收集實時鳴叫不斷,存儲到本地數據存儲](http://stackoverflow.com/questions/15280565/collect-real-time-tweets-continuously-store-into-local-datastore) – EECOLOR 2013-03-11 10:17:11

回答

1

The documentation狀態:

URL被認爲是匹配的目的,詞語,這意味着整個域和路徑必須包含在用於包含URL匹配鳴叫軌道查詢。

它還包含了一個表,其中他們說:

example.com將匹配Someday I will visit example.com但不會匹配There is no example.com/foobarbaz

至於我可以告訴它不可能跟蹤域與它的所有子域。

+0

謝謝EECOLOR。我正在學習一些如何在Scala中使用Futures,Promise等工作,並且在這裏我正在嘗試在編寫任何代碼之前先在設計部分尋求其他人的指導。要實時收集實時推文並存儲到MongoDB中,您將如何在Scala中進行設計?同樣,我對期貨,承諾,流等方面也很陌生。有一些指導意見會有所幫助。 – user2066049 2013-03-11 20:54:33

+0

關於[期貨和承諾](http://docs.scala-lang.org/overviews/core/futures.html)的文件可能會有所幫助。 [此項目](https://github.com/Rhinofly/GitHubRawFileProxy/blob/master/app/controllers/Application.scala)文件包含一個示例。如果你對某些東西不熟悉,不要試圖設計正面。只需將一些東西拼湊起來即可獲得感受和理解。然後丟棄你的代碼並用你所獲得的知識進行設計。如果遇到特定問題,請將它們發佈到此處,StackOverflow是回答具體問題的理想場所。 – EECOLOR 2013-03-11 21:29:39