获取维基共享资源图片的深层链接
Get deeplinks of Wikimedia Commons pictures
我想从维基共享资源图片中获取全文 URL。例如,我想得到 https://upload.wikimedia.org/wikipedia/commons/6/69/Trittin%2C_J%C3%BCrgen-0126.jpg from File:Trittin, Jürgen-0126.jpg。这是 html 来源:
<div class="fullMedia"><a href="https://upload.wikimedia.org/wikipedia/commons/6/69/Trittin%2C_J%C3%BCrgen-0126.jpg" class="internal" title="Trittin, Jürgen-0126.jpg">Original file</a> ‎<span class="fileInfo">(1,996 × 3,000 pixels, file size: 2.2 MB, MIME type: <span class="mime-type">image/jpeg</span>)</span>
</div>
因为我正在做很多查询,所以我更喜欢轻量级的 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是一种强加!
很高兴你能帮助我。
替换为URL
File:
和
Special:FilePath/
我使用 curl 和 grep 的技巧:
curl -s https://commons.wikimedia.org/wiki/File:Trittin,_J%C3%BCrgen-0126.jpg | grep fullImageLink | grep -o 'http[^ ]*jpg'
正如其他人所说,您应该使用 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'
我想从维基共享资源图片中获取全文 URL。例如,我想得到 https://upload.wikimedia.org/wikipedia/commons/6/69/Trittin%2C_J%C3%BCrgen-0126.jpg from File:Trittin, Jürgen-0126.jpg。这是 html 来源:
<div class="fullMedia"><a href="https://upload.wikimedia.org/wikipedia/commons/6/69/Trittin%2C_J%C3%BCrgen-0126.jpg" class="internal" title="Trittin, Jürgen-0126.jpg">Original file</a> ‎<span class="fileInfo">(1,996 × 3,000 pixels, file size: 2.2 MB, MIME type: <span class="mime-type">image/jpeg</span>)</span>
</div>
因为我正在做很多查询,所以我更喜欢轻量级的 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是一种强加!
很高兴你能帮助我。
替换为URL
File:
和
Special:FilePath/
我使用 curl 和 grep 的技巧:
curl -s https://commons.wikimedia.org/wiki/File:Trittin,_J%C3%BCrgen-0126.jpg | grep fullImageLink | grep -o 'http[^ ]*jpg'
正如其他人所说,您应该使用 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'