【问题标题】:Parsing a YouTube thumbnail in an iframe with Jsoup使用 Jsoup 在 iframe 中解析 YouTube 缩略图
【发布时间】:2015-08-10 07:22:05
【问题描述】:

我想在我的 Android 应用中显示此 YouTube 网址的默认缩略图:

<iframe width="560" height="315" src="https://www.youtube.com/embed/FXx_gbdIUKg" frameborder="0" allowfullscreen=""></iframe>

这是我这样做的方法:

  static String parseThumbnail(String youTubeURL){
        org.jsoup.nodes.Document document = Jsoup.parse(youTubeURL);
        Elements youtubeElements = document.select("FXx_gbdIUKg");
        org.jsoup.nodes.Document iframeDoc =  Jsoup.parse(youtubeElements.get(0).data());
        Elements iframeElements = iframeDoc.select("iframe");
    return iframeElements.attr("http://img.youtube.com/vi/"+youtubeElements+"/default.jpg");

iframe 在“content:encoded”节点内,所以我在这里调用这个方法。

String itemYouTubeImage = null;

                 if (XML_TAG_CONTENT_ENCODED.equalsIgnoreCase(tag)) {
                        String contentEncoded = tagNode.getTextContent();
                        itemYouTubeImage = parseThumbnail(contentEncoded);
                        itemImageURL = parseImageFromHTML(contentEncoded);
                        itemContentEncodedText = parseTextFromHTML(contentEncoded);

我该如何正确地做到这一点?

我遇到的一个问题是编译器告诉我分配给itemYouTubeImage 的值parseThumbnail(contentEncoded) 从未使用过

【问题讨论】:

    标签: java android iframe youtube jsoup


    【解决方案1】:

    如果您只需要默认缩略图,YouTube HTML 文档的&lt;head&gt; 中提供了该缩略图。它没有被编码。

    <link itemprop="thumbnailUrl" 
        href="https://i.ytimg.com/vi/2qhzsn3pZgk/maxresdefault.jpg">
    

    选择属性值并获取绝对 URL:

        String youtubeUrl = "https://www.youtube.com/watch?v=9wpqE8OSWrU";
    
        Document doc = Jsoup.connect(youtubeUrl).get();
    
        String thumbnailUrl = doc
                .select("link[itemprop=thumbnailUrl]")
                .first()
                .absUrl("href");
    
        System.out.println(thumbnailUrl);
    

    输出

        https://i.ytimg.com/vi/9wpqE8OSWrU/maxresdefault.jpg
    

    Jsoup cookbook 中了解更多信息。

    【讨论】:

      猜你喜欢
      • 2013-09-11
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2016-04-21
      • 2020-12-09
      • 2019-06-07
      相关资源
      最近更新 更多