有没有办法使用通配符从域中的未指定的URL下载图像?

时间:2018-04-16 19:30:47

标签: bash image http grep wget

我想在Bulbapedia上下载每个807口袋妖怪的所有显示图像。例如,对于Bulbasaur,我想获取此图片: Bulbasaur Example

当我点击图像时,我可以看到图像地址遵循某种模式:

Bulbasaur: https://cdn.bulbagarden.net/upload/2/21/001Bulbasaur.png
Ivysaur: https://cdn.bulbagarden.net/upload/7/73/002Ivysaur.png
Venusaur: https://cdn.bulbagarden.net/upload/a/ae/003Venusaur.png
Charmander: https://cdn.bulbagarden.net/upload/7/73/004Charmander.png
Zeraora: https://cdn.bulbagarden.net/upload/a/a7/807Zeraora.png

......等等。基本上,托管每个图像的URL是某种形式的https://cdn.bulbagarden.net/upload/*/*/*.png,每个星号代表一个通配符。

我的问题是,在使用bash或wget时,我不确定如何表示这些通配符。我已经尝试了以下wget命令来获取图像:

wget -A.png -e robots=off -m -k -nv -np -p \ --no-check-certificate --user-agent="Mozilla/5.0 (compatible; Konqueror/3.0.0/10; Linux)" \ https://cdn.bulbagarden.net/upload/

但是,我下载0 bytes in 0 files,这意味着没有文件被识别。

我有什么方法可以这样做吗?

更新:正如有些人在评论中指出的那样,我需要一些方法来汇总所有单独的链接。我找到this page,其中包含807口袋妖怪每篇文章的链接。但是,这会导致从链接页面递归检索链接的困境。为了真正获取图片,我需要在登陆个人口袋妖怪的文章后再点击两个链接。我将以图形方式显示我的意思:

  1. List of Pokémon by National Pokédex number页面中,获取Bulbasaur的页面链接:Bulbasaur
  2. Bulbasaur (Pokémon)页面上,点击Bulbasaur图片,转到指向实际png的目录:Bulbasaur Example
  3. 最后,在File:001Bulbasaur.png页面上,获取指向目标png的图片链接:https://cdn.bulbagarden.net/upload/2/21/001Bulbasaur.pngenter image description here
  4. 此过程应递归应用于初始列表页面中的所有链接。
  5. 我试图获得所需结果的命令是:

    wget --recursive --level=1 --no-directories --accept png https://bulbapedia.bulbagarden.net/wiki/List_of_Pokémon_by_National_Pokédex_number
    

    但我得到的只是这个错误:er: Unsupported scheme.

    我几乎是一个w菜鸟,所以我不太清楚我在这里做错了什么。我如何递归到达图像链接?

0 个答案:

没有答案