如果我从推文中获得了这样的链接:https://t.co/xxxxxxxxxxx, 我知道链接包含和图像。如何从该帖子中提取该图像,以便在其他页面上使用它?我正在使用twitter4j。
提前致谢
编辑:
我认为它可以通过以下方式起作用:
public String getImageUrlFromPost(String url) throws TwitterException {
Query query = new Query(url);
QueryResult result = this.getTwitter().search(query);
System.out.println("The tweets found: " + result.getTweets() +" with query " + url);
for (Status status : result.getTweets()) {
for (MediaEntity mediaEntity : status.getMediaEntities()) {
return mediaEntity.getMediaURLHttps();
}
}
return null;
}
不幸的是,当我通过我的t.co链接时,result.getTweets()
为空:(
答案 0 :(得分:3)
我很害怕,但你无法通过Twitter4J API以编程方式查询或检索t.co
- 网址后面的图片。
基本上,至少有两种类型的URL格式可以在Twitter中引用资源:
格式为http://t.co/randomstringhere的每个网址都是重定向链接到网络中的另一个资源(很可能是网页),实际的网页可能是结构化的每个引用的页面完全不同。因此,没有通用的方法来推断引用页面的 xHTML 结构,因此没有正确的方法来检索您正在寻找的内容。
相比之下,Twitter使用网址格式http://pbs.twimg.com/media/anotherandomstring.png(或.jpg或其他格式)来引用已在附加媒体文件的推文中共享的图像(此处:图片)。只有在这种情况下,您才能使用status.getMediaEntities()
和mediaEntity.getMediaURLHttps()
来检索实际图片的网址二进制内容。
结论:
可悲的是,至少在2016年,没有通用的方法来检索http://t.co/后面的资源(媒体文件)...通过Twitter4J在推文中引用的网址。