获取维基共享资源图片的深层链接

时间:2017-08-24 17:54:39

标签: json bash parsing mediawiki-api wikimedia-commons

我想从Wikimedia Commons图片中获取全文网址。例如,我想从https://upload.wikimedia.org/wikipedia/commons/6/69/Trittin%2C_J%C3%BCrgen-0126.jpg获取File:Trittin, Jürgen-0126.jpg。这是html源代码:

type MyState = { foo: number; };
type Reducer<T> = (state: T) => T;

const wtf: Reducer<MyState> = (state) => {
  return { foo: 123, bar: 123 }; // `bar` isn't part of MyState
};

因为我做了很多查询,所以我更喜欢轻量级的unix工具解决方案而不是像BeautifulSoup这样的东西。还有一个API(commons.wikimedia.org/w/api.php?action=query&prop=imageinfo&titles=File:Trittin,_J%C3%BCrgen-0126.jpg&iiprop=url),但对我来说,作为一个简单的bash脚本,JSON是一个拼版!

如果你能帮助我,我很高兴。

3 个答案:

答案 0 :(得分:1)

替换网址

File:

Special:FilePath/

答案 1 :(得分:0)

我的hack使用curl和grep:

'Norman~ +Maclean'

答案 2 :(得分:0)

正如其他人所说,你应该使用jq

curl --silent 'https://commons.wikimedia.org/w/api.php?format=json&formatversion=2&action=query&prop=imageinfo&titles=File:Trittin,_J%C3%BCrgen-0126.jpg&iiprop=url' | jq --raw-output '.query.pages[0].imageinfo[0].url'