我正在使用twitter4j庫來訪問公開的twitter流。我正在嘗試製作一個包含地理標記的推文的項目,並且我需要收集大量的文章進行測試。我可以請求/過濾Twitter流式API嗎只返回帶有地理標記的推文嗎?
現在我正在從twitter獲取未經過濾的流,只保存包含地理標記的推文。這很慢,因爲VAST大多數推文沒有地理標籤。我希望Twitter流僅向我發送包含地理標記的推文。
我已經嘗試過使用this question中提到的方法,在這裏你用一個尺寸爲360 * * 180 *的邊界框進行過濾,但這對我不起作用。我在使用該過濾器時沒有收到任何錯誤,但我仍然收到99%的推文,沒有地理標記。下面是我如何做它:
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("censored")
.setOAuthConsumerSecret("censored")
.setOAuthAccessToken("censored")
.setOAuthAccessTokenSecret("censored");
TwitterStream twitterStream = newTwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new MyStatusListener();
twitterStream.addListener(listener);
//add location filter for what I hope is the whole planet. Just trying to limit
//results to only things that are geotagged
FilterQuery locationFilter = new FilterQuery();
double[][] locations = {{-180.0d,-90.0d},{180.0d,90.0d}};
locationFilter.locations(locations);
twitterStream.filter(locationFilter);
twitterStream.sample();
爲什麼我仍然沒有得到地理標記的鳴叫有什麼建議?
編輯:我剛剛重讀twitter4j javadoc關於添加過濾器的twitter流,它說:「默認的訪問級別允許多達200個跟蹤關鍵字,400跟隨userids和10個1度位置框。所以包圍盒可能只有1度寬?這與我遇到的原始信息不同。這是我的問題嗎?我的過濾請求太大,因此被忽略?我在嘗試使用它時沒有遇到任何錯誤。
哇,謝謝你的答案。我幾乎忘了這個問題。我仍然收到一些沒有地理標記的推文,但這是一個很大的改進。在使用地理標籤之前,我只能使用大約1/1000推文,現在我可以通過地理標籤獲得大約3/5的推文。不知道爲什麼我仍然缺少一些,但這肯定有幫助。 –