2017-08-24 195 views
0

我希望從維基共享資源中獲取全文網址。舉例來說,我想從File:Trittin, Jürgen-0126.jpg得到https://upload.wikimedia.org/wikipedia/commons/6/69/Trittin%2C_J%C3%BCrgen-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> &#8206;<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是一個強加!

我很高興你能幫助我。

+0

[tag:jq]簡化了JSON的困境 –

回答

1

使用curl和grep替換URL

File: 

通過

Special:FilePath/ 
0

我劈:

curl -s https://commons.wikimedia.org/wiki/File:Trittin,_J%C3%BCrgen-0126.jpg | grep fullImageLink | grep -o 'http[^ ]*jpg' 
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'