ऑनलाइन फ़ाइलों / फ़ोल्डरों की सूची में दिखाई देने वाली सभी फाइलों और उप-निर्देशिकाओं के साथ HTTP निर्देशिका कैसे डाउनलोड करें?


187

एक ऑनलाइन HTTP निर्देशिका है जिसकी मुझे एक्सेस है। मैंने सभी उप-निर्देशिकाओं और फ़ाइलों को डाउनलोड करने की कोशिश की है wget। लेकिन, समस्या यह है कि जब wgetउप-निर्देशिकाओं को डाउनलोड किया जाता है तो यह उस index.htmlफ़ाइल को डाउनलोड करता है जिसमें उस निर्देशिका में फ़ाइलों की सूची होती है जो स्वयं फ़ाइलों को डाउनलोड किए बिना होती है।

क्या गहराई-सीमा के बिना उप-निर्देशिकाओं और फ़ाइलों को डाउनलोड करने का एक तरीका है (जैसे कि निर्देशिका मैं डाउनलोड करना चाहता हूं बस एक फ़ोल्डर है जिसे मैं अपने कंप्यूटर पर कॉपी करना चाहता हूं)।

ऑनलाइन HTTP निर्देशिका

जवाबों:


353

उपाय:

wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

स्पष्टीकरण:

  • यह ddd निर्देशिका में सभी फ़ाइलों और सबफ़ोल्डर्स को डाउनलोड करेगा
  • -r : पुनरावर्ती
  • -np: ऊपरी निर्देशिकाओं में नहीं जा रहे हैं, जैसे ccc /…
  • -nH : होस्टनाम फ़ोल्डर में फ़ाइलों को सहेजना नहीं
  • --cut-dirs=3: लेकिन इसे बचाने के लिए पहले 3 फ़ोल्डर्स आआ , bbb , ccc को छोड़ कर ddd करें
  • -R index.html: index.html फ़ाइलों को छोड़कर

संदर्भ: http://bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-earch-directory-listed-by-apache/


17
धन्यवाद! इसके अलावा, FYI के अनुसार इस का उपयोग कर सकते -Rकी तरह -R cssसभी सीएसएस फ़ाइलें बाहर करते हैं, या उपयोग करने के लिए -Aकी तरह -A pdfही डाउनलोड पीडीएफ फाइलों के लिए।
जॉन

7
धन्यवाद! अतिरिक्त सलाह wget मैन पेज से ली गईWhen downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
jgrump2012

3
मुझे यह त्रुटि मिलती है कि 'wget' को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है।
हामिश

1
@ यामिश आपको पहले wget स्थापित करने की आवश्यकता हो सकती है या wget आपके $ PATH में नहीं है।
शी

16
शानदार उत्तर, लेकिन ध्यान दें कि यदि robots.txtनिर्देशिका में फ़ाइलों के डाउनलोड को बाधित करने वाली कोई फ़ाइल है, तो यह काम नहीं करेगा। उस स्थिति में आपको जोड़ना होगा -e robots=off । देखें unix.stackexchange.com/a/252564/10312
डैनियल हर्शकोविच

45

मैं VisualWGet का उपयोग करते हुए इस पोस्ट के लिए धन्यवाद काम करने में सक्षम था । वो मेरे लिए बहुत अच्छा था। ध्वज की जांच करने के लिए महत्वपूर्ण हिस्सा लगता है (छवि देखें)।-recursive

यह भी पाया कि -no-parentझंडा महत्वपूर्ण है, यह सब कुछ डाउनलोड करने का प्रयास करेगा।

यहां छवि विवरण दर्ज करें यहां छवि विवरण दर्ज करें


2
बस यह मिल गया - Dec 2017. यह ठीक काम करता है। मैं इसे sourceforge.net/projects/visualwget
SDsolar

2
विंडोज मशीन पर ठीक काम, उत्तर में दिए गए विकल्पों में जांच करना न भूलें, अन्यथा यह काम नहीं करेगा
csharpcoder

कुछ https के साथ काम नहीं करता है। @DaveLucre अगर आप cmd सॉल्यूशन में wget के साथ कोशिश करेंगे तो आप भी डाउनलोड कर पाएंगे, लेकिन कुछ सेवर इसे अनुमति नहीं देते हैं
Yannis Dran

चेक क्या करता है --no-parent?
T.Todua

1
मार्च 2020 में काम करना!
मिस्टर प्रोग्रामर

7
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

से man wget

'-r' '--recursive' पुनरावर्ती पुनर्प्राप्ति को चालू करें। अधिक जानकारी के लिए, पुनरावर्ती डाउनलोड देखें। डिफ़ॉल्ट अधिकतम गहराई 5 है।

'-np' '--no-parent' कभी भी पुन: प्राप्त करने पर मूल निर्देशिका में नहीं चढ़ते। यह एक उपयोगी विकल्प है, क्योंकि यह गारंटी देता है कि केवल एक निश्चित पदानुक्रम के नीचे की फाइलें डाउनलोड की जाएंगी। अधिक विवरण के लिए निर्देशिका-आधारित सीमाएँ देखें।

'-nH' '--no-host-directory' मेजबान-उपसर्ग निर्देशिका की अक्षम पीढ़ी। डिफ़ॉल्ट रूप से, '-r http://fly.srk.fer.hr/ ' के साथ Wget को आमंत्रित करने से fly.srk.fer.hr/ के साथ शुरू होने वाली निर्देशिकाओं की एक संरचना तैयार हो जाएगी। यह विकल्प इस तरह के व्यवहार को अक्षम करता है।

'--cut-dirs = संख्या' संख्या निर्देशिका घटकों को अनदेखा करें। यह उस निर्देशिका पर ठीक-ठीक नियंत्रण पाने के लिए उपयोगी है जहाँ पुनरावर्ती पुनर्प्राप्ति को बचाया जाएगा।

उदाहरण के लिए, ' ftp://ftp.xemacs.org/pub/xemacs/ ' पर निर्देशिका । यदि आप इसे '-r' के साथ पुनः प्राप्त करते हैं, तो इसे स्थानीय रूप से ftp.xemacs.org/pub/xemacs/ के तहत सहेजा जाएगा। हालांकि '-nH' विकल्प ftp.xemacs.org/ भाग को हटा सकता है, फिर भी आप पब / xacacs से चिपके रहते हैं। यह वह जगह है जहाँ '--कट-डायर' काम आता है; यह Wget नहीं बनाता है "देखें" संख्या दूरस्थ निर्देशिका घटक। यहाँ '-कट-डायर' विकल्प कैसे काम करता है, इसके कई उदाहरण दिए गए हैं।

कोई विकल्प नहीं -> ftp.xemacs.org/pub/xemacs/ -nH -> पब / xemacs / -nH-cut-dirs = 1 -> xemacs / -nH-cut-dirs = 2 ->।

--cut-dirs = 1 -> ftp.xemacs.org/xemacs/ ... यदि आप केवल निर्देशिका संरचना से छुटकारा चाहते हैं, तो यह विकल्प '-nd' और '-P' के संयोजन के समान है। हालाँकि, '-nd' के विपरीत, '--cut-dirs' उपनिर्देशिका के साथ नहीं खोता है - उदाहरण के लिए, '-nH --cut-dirs = 1' के साथ, एक बीटा / उपनिर्देशिका को xemacs / beta में रखा जाएगा, जैसे एक की उम्मीद होगी।


3
कुछ स्पष्टीकरण बहुत अच्छा होगा।
बेनोइट लेटिनियर

विज़ुअलवेट का उपयोग करके किसी विशिष्ट फ़ाइल प्रकार को डाउनलोड करने के बारे में क्या ? क्या किसी निर्देशिका में केवल एमपी 3 फ़ाइलों और विजुअलवॉट में इसके उप-निर्देशिकाओं को डाउनलोड करना संभव है ?
जेसन

3

wgetएक अमूल्य संसाधन है और कुछ मैं खुद का उपयोग करता हूं। हालाँकि कभी-कभी पता में वर्ण होते हैं जो wgetवाक्यविन्यास त्रुटियों के रूप में पहचान करते हैं। मुझे यकीन है कि इसके लिए एक तय है, लेकिन जैसा कि यह सवाल विशेष रूप से नहीं पूछा गया था, wgetमैंने सोचा कि मैं उन लोगों के लिए एक विकल्प पेश करूंगा, जो इस पृष्ठ पर निस्संदेह ठोकर खाएंगे, जिसमें कोई सीखने की अवस्था की आवश्यकता नहीं है।

कुछ ब्राउज़र एक्सटेंशन हैं जो ऐसा कर सकते हैं, लेकिन अधिकांश को डाउनलोड मैनेजर स्थापित करने की आवश्यकता होती है, जो हमेशा मुफ़्त नहीं होते हैं, एक आंखों के लिए होते हैं, और बहुत सारे संसाधनों का उपयोग करते हैं। इनमे से एक है जिसमें इन कमियों में से कोई भी नहीं है:

"डाउनलोड मास्टर" Google Chrome के लिए एक एक्सटेंशन है जो निर्देशिकाओं से डाउनलोड करने के लिए बहुत अच्छा काम करता है। आप संपूर्ण निर्देशिका को डाउनलोड करने या डाउनलोड करने के लिए किस फ़ाइल-प्रकार को फ़िल्टर करना चुन सकते हैं।

https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce

अप-टू-डेट सुविधा सूची और अन्य जानकारी के लिए, डेवलपर के ब्लॉग पर प्रोजेक्ट पृष्ठ पर जाएं:

http://monadownloadmaster.blogspot.com/



2

कोई सॉफ्टवेयर या प्लगइन की आवश्यकता नहीं है!

(केवल उपयोगी अगर आपको पुनरावर्ती विभाग की आवश्यकता नहीं है)

बुकमार्क का उपयोग करें। इस लिंक को बुकमार्क में खींचें , फिर इस कोड को संपादित करें और पेस्ट करें:

(function(){ var arr=[], l=document.links; var ext=prompt("select extension for download (all links containing that, will be downloaded.", ".mp3"); for(var i=0; i<l.length; i++) { if(l[i].href.indexOf(ext) !== false){ l[i].setAttribute("download",l[i].text); l[i].click(); } } })();

और पृष्ठ पर जाएं (जहां से आप फ़ाइलों को डाउनलोड करना चाहते हैं), और उस बुकमार्कलेट पर क्लिक करें।


1

आप lftp का उपयोग कर सकते हैं, डाउनलोड करने की स्वाइप सेना चाकू यदि आपके पास बड़ी फाइलें हैं जिन्हें आप --use-pget-n=10कमांड में जोड़ सकते हैं

lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'

पूरी तरह से और वास्तव में तेजी से काम किया, इसने हजारों छोटी फ़ाइलों को डाउनलोड करने वाली मेरी इंटरनेट लाइन को अधिकतम किया। बहुत अच्छा।
n13

-1

wget आम तौर पर इस तरह से काम करता है, लेकिन कुछ साइटों में समस्याएं हो सकती हैं और यह बहुत सी अनावश्यक HTML फाइलें बना सकता है। इस काम को आसान बनाने के लिए और अनावश्यक फ़ाइल निर्माण को रोकने के लिए, मैं अपनी गेटवेबफ़ोल्डर स्क्रिप्ट साझा कर रहा हूं, जो कि मैंने अपने लिए लिखी गई पहली लिनक्स स्क्रिप्ट है। यह स्क्रिप्ट एक वेब फ़ोल्डर की सभी सामग्री को पैरामीटर के रूप में दर्ज करती है।

जब आप wget द्वारा एक खुला वेब फ़ोल्डर डाउनलोड करने का प्रयास करते हैं जिसमें एक फ़ाइल होती है, तो wget index.html नामक फ़ाइल डाउनलोड करता है। इस फ़ाइल में वेब फ़ोल्डर की फ़ाइल सूची है। मेरी स्क्रिप्ट इंडेक्स। Html फ़ाइल में लिखे गए नामों को वेब पते में कनवर्ट करती है और उन्हें स्पष्ट रूप से wget के साथ डाउनलोड करती है।

उबंटू 18.04 और काली लिनक्स पर परीक्षण किया गया, यह अन्य डिस्ट्रो के साथ भी काम कर सकता है।

उपयोग:

  • नीचे दी गई ज़िप फ़ाइल से getwebfolder फाइल निकालें

  • chmod +x getwebfolder (केवल पहली बार)

  • ./getwebfolder webfolder_URL

जैसे कि ./getwebfolder http://example.com/example_folder/

डाउनलोड लिंक

ब्लॉग पर विवरण

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.