Twitterのクローラ
buzztterやふぁぼったーやつぶやいったーの人たちはどうやってTwitterのクローラを開発したんだろう?
Stream AIPは最近追加されたものだから使ってないだろうし、かといってgetPublicTimeLine()じゃ漏れがあるだろうし、すぐにAPI制限にかかっちゃいそう。
そもそもAPI使わずに取得してるのかな
どうやるんだろう?
API使わずに直接HTMLを解析するみたい
それでも結局はPublicTimeLineを参照するんだろうから取りこぼしそうだよなー
API制限にはかからないけど
よく考えたら作ろうとしているサービスは多少取りこぼしがあっても何の問題もなかった。Streaming API使わせて貰えそうにないから、自分で作るかな
TwitterはXMLやRSS、JSONなど応答形式を選べるみたい
どれが良いのか、それぞれのデメリットがわからないや
Twitter4jがJSONみたいなので倣ってJSONで
解析するのはわかったけど、リクエストの発行する間隔はどうやってるんだろう?
取得したメッセージが流れたらって判断してるのか、それとも適当に1分間隔とか?それじゃ取りこぼしありそうだし、10秒とかだと規制されそう
getpublicTimelineにもsinceIDがあればいいのになー
メモ:
- Twitter をはじめよう!番外編:ブログパーツや開発者向けの情報 - GreenSpace
- 勉強会/XMLSQLite - 日本Androidの会(日本アンドロイドの会)
- Xerial Wiki: wiki
- 多忙な Java 開発者のための Scala ガイド: Scala + Twitter = Scitter
public class RSSTest { public static void main(String[] args) throws Exception { FeedFetcher fetcher = new HttpURLFeedFetcher(); String url = "http://pcod.no-ip.org/yats/public_timeline?rss"; SyndFeed feed = fetcher.retrieveFeed(new URL(url)); for (SyndEntry entry : (List<SyndEntry>) feed.getEntries()) { System.out.print(entry.getUpdatedDate()+"\t\t"); System.out.print(entry.getAuthor()+"\t\t"); System.out.println(entry.getDescription().getValue()); } } }