2012-09-03 152 views
0

如何從網頁下載所有圖像並在圖像名稱前加上網頁的URL(所有符號都用下劃線替換)?如何根據網址下載圖片並保存圖片名稱?

www_amazon_com_gp_product_B0029KH944_41RaFZ6S-0L._SL500_AA300_.jpg

我已經安裝了WinHTTrack和wget:

例如,如果我是從http://www.amazon.com/gp/product/B0029KH944/下載所有圖像,然後在主產品圖像將使用這個文件名保存並花費了更多的時間,可能會讓他們做我想做的事情,但我沒有成功,所以Stack Overflow是我最後一次努力。 (如果您根據網站結構設置了保存文件的構建選項,並根據其父目錄編寫腳本來重命名文件,但WinHTTrack已關閉,但問題在於主圖像託管在其他域中。)

回答

1

好吧,我爲我的新Webscraper添加了一個下載選項。

有了,你可以做這樣的:

xidel "http://rads.stackoverflow.com/amzn/click/B0029KH944" -e 'site:=translate(filter($_url, "http://(.*)", 1), "/.", "__")' -f //img -e 'image:=filter($_url, ".*/(.*)", 1)' --download '$site;$image;' 

首先-e讀取URL並刪除/。字符,-f選擇所有圖像,-e第二個讀取文件名並--download下載它然後...

儘管它有一個缺點,它試圖將每個圖像解析爲一個html文件,它下來有點...

+0

嗨貝尼貝拉,我剛剛下載xidel並運行您提供的命令;但是,它產生了以下錯誤:「錯誤未知選項:。(當讀取參數:。」時)「 – 10basetom

+1

您使用的是Windows還是Linux?在Windows上,它不支持' - 在外層的單引號,並且你需要將'與'引用交換。我在發佈答案後更改了默認變量名:兩個$ _url變量現在應該是取而代之的是簡單的$ url – BeniBela

+0

經過對所有文檔的研究,並且經過多次反覆試驗,我認爲我終於掌握了你的美妙和非常靈活的刮板,BeniBela :-)。下面是最終的命令我想在我的問題:'xidel http://www.amazon.com/dp/B0029KH944/ -e「site:= fn:replace(filter($ url,'http://(。+)',1 ),'\ W','_')「-f」// img [@ id ='prodImage']「-e」image:= filter($ url,'。+ /(。+)',1) 「 - 下載」$ site; $ image;「' – 10basetom