在 Bash 脚本中跟踪 Web 重定向

在 Bash 脚本中跟踪 Web 重定向

我想编写一个脚本,从 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它来下载它。

直到页面的内部代码为这种类型时,此方法才有效。否则,您必须找到另一种方法来选择您感兴趣的唯一标签。

相关内容