如何从推文中包含的't.co'网址中提取图片?

时间:2016-02-12 12:13:34

标签: java image twitter twitter4j

如果我从推文中获得了这样的链接: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()为空:(

1 个答案:

答案 0 :(得分:3)

我很害怕,但你无法通过Twitter4J API以编程方式查询或检索t.co - 网址后面的图片。

基本上,至少有两种类型的URL格式可以在Twitter中引用资源:

  1. 格式为http://t.co/randomstringhere的每个网址都是重定向链接到网络中的另一个资源(很可能是网页),实际的网页可能是结构化的每个引用的页面完全不同。因此,没有通用的方法来推断引用页面的 xHTML 结构,因此没有正确的方法来检索您正在寻找的内容。

  2. 相比之下,Twitter使用网址格式http://pbs.twimg.com/media/anotherandomstring.png(或.jpg或其他格式)来引用已在附加媒体文件的推文中共享的图像(此处:图片)。只有在这种情况下,您才能使用status.getMediaEntities()mediaEntity.getMediaURLHttps()来检索实际图片的网址二进制内容。

  3. 结论:

    可悲的是,至少在2016年,没有通用的方法来检索http://t.co/后面的资源(媒体文件)...通过Twitter4J在推文中引用的网址。

相关问题