我想获取Discogs版本的图像。没有Discogs API可以做到吗?
他们在数据库转储中没有指向映像的链接。
最佳答案
要在没有API的情况下执行此操作,您将必须加载网页并从html源代码中提取图像。您可以通过加载https://www.discogs.com/release/xxxx
查找相关页面,其中xxxx
是发行版号。由于html只是一个文本文件,因此您现在可以提取jpeg URL。
我不知道您的编程语言是什么,但是我确定它可以处理String函数,例如indexOf
和subString
。您可以提取html的OG:Image
内容作为图片。
举个例子:https://www.discogs.com/release/8140515
找到.indexOf("og:image\" content=\");
另存为startPos
的整数。
那是19个字符,所以接下来将.indexOf(".jpg", startPos + 19);
转换为endPos
。在startPos索引+ 19其他任何字符之后,这将首次出现.jpg。
现在从html文本img_URL = myHtmlStr.substring(startPos+19, endPos);
中提取一个subString
您应该以下面这样的字符串结尾(提取的URL):https://img.discogs.com/_zHBK73yJ5oON197YTDXM7JoBjA=/fit-in/600x600/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-8140515-1460073064-5890.jpeg.jpg
可以简化该过程,以找到https://img.
的startPos索引,然后从该startPos索引之后进行搜索时找到.jpg
的第一次出现。在该长度范围内提取。这是因为图像URL仅在https://img.
的html源中提及
将位于https://www.discogs.com/release/8140515的页面与下面提取的URL图像进行比较。