我有一系列需要下載單個圖像的URL。通過腳本下載帶有特定Div的圖像
在標記爲每個頁面有以下
<div class="subcolumns product-hero">
<div class="c60l">
<img src="Cubes.png" width="300"/>
</div>
</div>
我需要最好有一類產品好漢下載專區內的圖像,或保存圖片src標籤。
這是可能通過某種自動腳本?節點/ Perl等?
我有一系列需要下載單個圖像的URL。通過腳本下載帶有特定Div的圖像
在標記爲每個頁面有以下
<div class="subcolumns product-hero">
<div class="c60l">
<img src="Cubes.png" width="300"/>
</div>
</div>
我需要最好有一類產品好漢下載專區內的圖像,或保存圖片src標籤。
這是可能通過某種自動腳本?節點/ Perl等?
我會考慮使用Phantom.js它允許您加載和查詢純JavaScript(不需要瀏覽器)的網頁。
查看Phantom's DOM Manipulation關於如何訪問文檔,然後您可以使用vanilla javascript dom查詢(如getElementsByClassName
和getElementsByTagName
)來訪問您需要的圖像。所以,你的腳本可能是這樣的:
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
page.evaluate(function() {
var productHeros = document.getElementsByClassName('product-hero');
for (var i = 0; i < productHeros.length; i++) {
var productHeroDiv = productHeros[i];
var image = productHeroDiv.getElementsByTagName("img")[0];
var source = image.src;
}
});
console.log(ua);
}
phantom.exit();
});
鑑於網址作爲參數列表的列表:
#!/bin/bash
for url in "[email protected]"; do
img_src=$(curl -s "$url" | \
xmllint 2>/dev/null --recover --html --xpath \
'string(//div[contains(@class, 'product-hero')]/img/@src)' -)
curl -O "$(dirname "$url")/$img_src"
done