是否可能获取包含照片的推文?我目前正在使用Twitter搜索API,通过设置include_entities=true获取所有具有实体详细信息的推文。我可以在媒体对象下看到图片详细信息,但是是否有任何方法可以过滤并获取仅具有这些媒体项目的推文对象?或者在Twitter4j中是否有进行此查询的方法?
是否可能获取包含照片的推文?我目前正在使用Twitter搜索API,通过设置include_entities=true获取所有具有实体详细信息的推文。我可以在媒体对象下看到图片详细信息,但是是否有任何方法可以过滤并获取仅具有这些媒体项目的推文对象?或者在Twitter4j中是否有进行此查询的方法?
没有特定的方法指定我只需要照片或视频,但您可以通过在查询中使用filter:links
、filter:images
或filter:videos
以及include_entities=true
来基于筛选结果。
例如:要获取自2012-01-31
以来包含链接的推文,您应将include_entities
参数以及filter:links
加入到查询中,如下所示:
https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Alinks&include_entities=true"
如果您需要根据图像/照片对推文进行过滤,我认为您应该使用 filter:images
。
您的情况示例如下:
https://search.twitter.com/search.json?q=from%3Agoogle%20since%3A2012-01-31%20filter%3Aimages&include_entities=true"
希望这可以帮助到您。最新的Twitter API中,我无法使筛选器起作用,也找不到任何解释。虽然你可以获取所有推文,然后仅解析媒体推文。您可以在解析脚本中使用以下代码:
```python if 'media' in tweet['entities']: # process media here ```if(this.entities.media != null){
//Parse the tweet
}
这并不是最佳方案,但最糟糕的部分是Twitter会向你提供更多信息并使用更多自己的资源。
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(false);
cb.setOAuthConsumerKey(API_KEY);
cb.setOAuthConsumerSecret(API_SECRET);
cb.setOAuthAccessToken(ACCESS_TOKEN);
cb.setOAuthAccessTokenSecret(SECRET_KEY);
// enabling include_entities parameters
cb.setIncludeEntitiesEnabled(true);
Twitter twitterInstance = new TwitterFactory(cb.build()).getInstance();
List<String> keywords = new ArrayList<String>();
keywords.add("#pet");
keywords.add("cat");
// String.join for Java 8
String twitterSearchString = "((" + String.join(" OR ", keywords) + ")";
// adding the filter condition
twitterSearchString += " AND filter:images)";
Query q = new Query(twitterSearchString);
你将会得到带有图片的结果(已经使用twitter4j-core 4.0.4进行测试)。
如果您想在 Twitter API 中使用筛选器,可以查看官方文档以获取最新版本(截至2019年4月2日)。
https://developer.twitter.com/en/docs/tweets/search/guides/standard-operators.html