我想编写一个脚本,从 deviantART 链接下载最佳分辨率的图像(而不是预览图像),就像我单击了“下载”按钮一样。
但是,deviantART 似乎将浏览器重定向到从其他来源下载图像,而我找不到如何通过 bash 脚本获取该来源。
例如,我想将此链接作为输入:
http://earthsong9405.deviantart.com/art/The-Big-Boys-357700214
并获取位于此处的图像:
http://fc05.deviantart.net/fs71/f/2013/077/1/c/the_big_boys_by_earthsong9405-d5wyr92.png
通过下载按钮中的链接给出的地址:
_http://www.deviantart.com/download/357700214/the_big_boys_by_earthsong9405-d5wyr92.png?token=add3c3dbf4112b7140930c574a819878509c7ebc&ts=1403209394
答案1
直到页面的代码是这种类型,您可以使用下面的小脚本来完成:
MyUrl=$1
File_Url=$(wget -q -O - "$MyUrl") # here you put the file html in a variable
Line=$(echo "$File_Url" |grep -e 'meta name="og:image"') # select only 1 line
# echo $Line
Img=$(echo $Line |sed -e 's/<meta name="og:image" content="//g' -e 's/">//g')
# echo $File_To_Download
wget -q $Img
这网址您要搜索的图像包含在标签中,meta name="og:image"
因此您可以使用wget
页面下载,通过grep
选择一个独特的线条,用 清除不需要的内容sed
。
通过这种方式获取图像的 URL(在脚本中的变量内Img
),您可以再次使用wget
它来下载它。
直到页面的内部代码为这种类型时,此方法才有效。否则,您必须找到另一种方法来选择您感兴趣的唯一标签。