6

我想获取 Discogs 版本的图像。我可以在没有 Discogs API 的情况下做到这一点吗?他们的数据库转储中没有指向图像的链接。

4

2 回答 2

6

要在没有 API 的情况下执行此操作,您必须加载网页并从 html源代码中提取图像。您可以通过加载版本号https://www.discogs.com/release/xxxx在哪里找到相关页面。xxxx由于 html 只是一个文本文件,您现在可以提取 jpeg URL。

我不知道你的编程语言是什么,但我确信它可以处理字符串函数,比如indexOfand subString。您可以提取图片的 htmlOG:Image内容。

举个例子:https ://www.discogs.com/release/8140515

比较位于https://www.discogs.com/release/8140515的页面与下面提取的 URL 图片。

于 2016-02-20T04:19:32.613 回答
0

这是使用 Java 和Jsoup库的方法。

  • 获取发布的 HTML 页面
  • 解析 HTML 并<meta property="og:image" content=".." />获取content价值
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class DiscogRelease {

    private final String url;

    public DiscogRelease(String url) {
        this.url = url;
    }

    public String getImageUrl() {
        try {
            Document doc = Jsoup.connect(this.url).get();
            Elements metas = doc.head().select("meta[property=\"og:image\"]");
            if (!metas.isEmpty()) {
                Element element = metas.get(0);
                return element.attr("content");
            }
        } catch (IOException ex) {
            Logger.getLogger(DiscogRelease.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

}
于 2018-03-30T07:51:52.460 回答