2012-01-11 17 views
6

वेबसाइट से सभी छवियों को डाउनलोड करने का सबसे तेज़ और आसान तरीका क्या है? अधिक विशेष रूप से, http://www.cycustom.com/large/वेबसाइट से सभी छवियों को डाउनलोड करने का सबसे तेज़ और आसान तरीका

मैं wget या curl की तर्ज पर कुछ सोच रहा हूं।

स्पष्टीकरण के लिए, पहले (और सबसे प्रमुख) मैं वर्तमान में यह नहीं जानता कि इस कार्य को कैसे पूरा किया जाए। दूसरा, मुझे यह देखने में दिलचस्पी है कि क्या wget या curl के पास एक आसान समझने वाला समाधान है। धन्यवाद।

--- अद्यतन @sarnold ---

आप जवाब देने के लिए धन्यवाद। मैंने सोचा कि चाल भी करेगा। हालांकि, यह नहीं है।

wget --mirror --no-parent http://www.cycustom.com/large/ 
--2012-01-10 18:19:36-- http://www.cycustom.com/large/ 
Resolving www.cycustom.com... 64.244.61.237 
Connecting to www.cycustom.com|64.244.61.237|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [text/html] 
Saving to: `www.cycustom.com/large/index.html' 

    [ <=>                                                         ] 188,795  504K/s in 0.4s  

Last-modified header missing -- time-stamps turned off. 
2012-01-10 18:19:37 (504 KB/s) - `www.cycustom.com/large/index.html' saved [188795] 

Loading robots.txt; please ignore errors. 
--2012-01-10 18:19:37-- http://www.cycustom.com/robots.txt 
Connecting to www.cycustom.com|64.244.61.237|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 174 [text/plain] 
Saving to: `www.cycustom.com/robots.txt' 

100%[======================================================================================================================================================================================================================================>] 174   --.-K/s in 0s  

2012-01-10 18:19:37 (36.6 MB/s) - `www.cycustom.com/robots.txt' saved [174/174] 

FINISHED --2012-01-10 18:19:37-- 
Downloaded: 2 files, 185K in 0.4s (505 KB/s) 

यहां फ़ाइलें की एक तस्वीर बनाई https://img.skitch.com/20120111-nputrm7hy83r7bct33midhdp6d.jpg

मेरे उद्देश्य एक फ़ोल्डर चित्र फ़ाइलें का पूरा करने के लिए है: यहाँ आदेश के उत्पादन है। निम्नलिखित आदेश इस उद्देश्य को प्राप्त नहीं किया था।

wget --mirror --no-parent http://www.cycustom.com/large/ 
+0

@ कर्नाल्ड [यहां index.html फ़ाइल की एक तस्वीर है w/कुछ नोट्स बनाई गईं] (https://img.skitch.com/ 20120111-1uapp8upbq6qmtrwsqsiygg62i.jpg) –

उत्तर

3
wget --mirror --no-parent http://www.example.com/large/ 

--no-parent यह पूरी वेबसाइट slurping से रोकता है।


आह, मैं देख वे उस निर्देशिका से नहीं डाउनलोड तस्वीरों के लिए एक robots.txt पूछ रोबोट रखा है:

$ curl http://www.cycustom.com/robots.txt 
User-agent: * 
Disallow: /admin/ 
Disallow: /css/ 
Disallow: /flash/ 
Disallow: /large/ 
Disallow: /pdfs/ 
Disallow: /scripts/ 
Disallow: /small/ 
Disallow: /stats/ 
Disallow: /temp/ 
$ 

wget(1) किसी भी विधि दस्तावेज़ नहीं है robots.txt अनदेखी करने के लिए और मैं कभी नहीं मिला है में --mirror के समतुल्य प्रदर्शन करने का एक आसान तरीका। यदि आप wget(1) का उपयोग करना जारी रखना चाहते हैं, तो आपको GET /robots.txt अनुरोधों के लिए 404 पर लौटने वाले मध्य में एक HTTP प्रॉक्सी डालना होगा।

मुझे लगता है कि दृष्टिकोण को बदलना आसान है। जब से मैं Nokogiri का उपयोग कर अधिक अनुभव करना चाहता था, यहाँ है कि मैं क्या के साथ आया है:

#!/usr/bin/ruby 
require 'open-uri' 
require 'nokogiri' 

doc = Nokogiri::HTML(open("http://www.cycustom.com/large/")) 

doc.css('tr > td > a').each do |link| 
    name = link['href'] 
    next unless name.match(/jpg/) 
    File.open(name, "wb") do |out| 
    out.write(open("http://www.cycustom.com/large/" + name)) 
    end 
end 

यह सिर्फ एक त्वरित और गंदी स्क्रिप्ट है - यूआरएल को एम्बेड दो बार थोड़ा बदसूरत है। इसलिए यदि यह दीर्घकालिक उत्पादन के उपयोग के लिए है, तो पहले इसे साफ़ करें - या इसके बजाय rsync(1) का उपयोग कैसे करें।

+0

आपके सुझाव के परिणामों को शामिल करने के लिए मूल प्रश्न संपादित किया –

4

robots.txt फ़ाइल निम्न विकल्प जोड़कर अनदेखा किया जा सकता:

-e robots=off 

मैं भी आदेश सर्वर पर लोड को सीमित करने में डाउनलोड धीमा करने के लिए एक विकल्प जोड़ने का सुझाव देते। उदाहरण के लिए, यह विकल्प एक फ़ाइल और अगले के बीच 30 सेकंड प्रतीक्षा करता है:

--wait 30 
संबंधित मुद्दे

 संबंधित मुद्दे