कर्ल का उपयोग करके वेब पेज से सभी फाइलें प्राप्त करना


86

मैं निम्नलिखित पेज से एक बार में सभी फाइलों को डाउनलोड करना चाहूंगा curl: http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/

मैंने कोशिश की curl http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/और यह टर्मिनल में लाइनों का एक गुच्छा लौटा, लेकिन क्या कोई फाइल नहीं मिली।

जवाबों:


124

wgetइसके बजाय उपयोग करें । आप इसे स्थापित कर सकते हैं brew install wgetयदि आपने Homebrew स्थापित किया है या sudo port install wgetयदि आपने MacPorts स्थापित किया है।

निर्देशिका लिस्टिंग से फ़ाइलों को डाउनलोड करने के लिए, -r(पुनरावर्ती) का उपयोग करें , -np(मूल निर्देशिकाओं के लिंक का पालन न करें), और -kडाउनलोड किए गए HTML में लिंक बनाने के लिए या स्थानीय फ़ाइलों को इंगित करें (क्रेडिट @xaccrocheur)।

wget -r -np -k http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/

अन्य उपयोगी विकल्प:

  • -nd (कोई निर्देशिका नहीं): सभी फाइलों को वर्तमान निर्देशिका में डाउनलोड करें
  • -e robots.off: robots.txt फ़ाइलों को अनदेखा करें, robots.txt फ़ाइलों को डाउनलोड न करें
  • -A png,jpg: केवल एक्सटेंशन वाली फ़ाइलों को स्वीकार करें pngयाjpg
  • -m (आईना): -r --timestamping --level inf --no-remove-listing
  • -nc, --no-clobber: डाउनलोड जाएं यदि फ़ाइलें मौजूद

3
wget -r -np -k http://your.website.com/specific/directory। चाल -kस्थानीय देखने के लिए लिंक (चित्र, आदि) में परिवर्तित करने के लिए उपयोग करना है।
yPhil

brewऔर portwget स्थापित करने के लिए मेरे लिए काम नहीं करता है। मुझे क्या करना चाहिए?
होसिन हेयदरी

@HoseynHeydari: आप osx के लिए संकलित बायनेरिज़ के लिए rudix.org का उपयोग कर सकते हैं। इसलिए आपको रूडिक्स को स्थापित करने और फिर उपयोग करने की आवश्यकता है: सुडोल रूडिक्स स्थापित करें
मामोनू

विकल्प -kहमेशा काम नहीं करता है। उदाहरण के लिए, यदि आपके पास वेबपेज पर एक ही फ़ाइल की ओर इशारा करते हुए दो लिंक हैं, जिन्हें आप पुनरावर्ती रूप से कैप्चर करने का प्रयास कर रहे हैं, तो wgetकेवल पहली आवृत्ति के लिंक को परिवर्तित करना प्रतीत होता है , लेकिन दूसरे को नहीं।
कुन

22

curlकेवल एक वेब पेज फ़ाइलों को पढ़ सकते हैं, आपके द्वारा प्राप्त लाइनों का गुच्छा वास्तव में निर्देशिका सूचकांक है (जो आप अपने ब्राउज़र में भी देखते हैं यदि आप उस URL पर जाते हैं)। curlउन फ़ाइलों को प्राप्त करने के लिए कुछ यूनिक्स टूल का उपयोग करने के लिए जादू करें जिन्हें आप कुछ पसंद कर सकते हैं

for file in $(curl -s http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/ |
                  grep href |
                  sed 's/.*href="//' |
                  sed 's/".*//' |
                  grep '^[a-zA-Z].*'); do
    curl -s -O http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/$file
done

जो वर्तमान निर्देशिका में सभी फ़ाइलों को प्राप्त करेगा।

अधिक विस्तृत आवश्यकताओं के लिए (फ़ोल्डर / निर्देशिका वाली साइट से फ़ाइलों का एक गुच्छा प्राप्त करना सहित), wget(जैसा कि पहले से एक और उत्तर में प्रस्तावित है) बेहतर विकल्प है।


धन्यवाद। यह एक अच्छा समाधान है और काम करने का उदाहरण प्रदान करना बहुत अच्छा है!
egelev

1
xmllint --html --xpath '//a/@href'शायद एक बेहतर पार्सर है grep
ceving

7

Ref: http://blog.incognitech.in/download-files-from-apache-server-listing-directory/

आप निम्न आदेश का उपयोग कर सकते हैं:

wget --execute="robots = off" --mirror --convert-links --no-parent --wait=5 <website-url>

प्रत्येक विकल्प के साथ स्पष्टीकरण

  • wget: CURL अनुरोध करने के लिए सरल कमांड और हमारे स्थानीय मशीन में रिमोट फाइल डाउनलोड करें।
  • --execute="robots = off": यह पृष्ठों के माध्यम से क्रॉल करते समय robots.txt फ़ाइल को अनदेखा करेगा। यदि आप सभी फ़ाइलों को प्राप्त नहीं कर रहे हैं तो यह उपयोगी है।
  • --mirror: यह विकल्प मूल रूप से दिए गए URL के लिए निर्देशिका संरचना को प्रतिबिंबित करेगा। यह एक शॉर्टकट है -N -r -l inf --no-remove-listingजिसका मतलब है:
    • -N: जब तक स्थानीय से नया नहीं होता है तब तक फ़ाइलों को पुनः प्राप्त न करें
    • -r: पुनरावर्ती डाउनलोड निर्दिष्ट करें
    • -l infअधिकतम पुनरावृत्ति गहराई (अनंत के लिए inf या 0)
    • --no-remove-listing: '.listing' फ़ाइलों को न निकालें
  • --convert-links: डाउनलोड की गई HTML या सीएसएस बिंदुओं को स्थानीय फाइलों में लिंक करें
  • --no-parent: मूल निर्देशिका पर चढ़ना नहीं है
  • --wait=5: पुनः प्राप्ति के बीच 5 सेकंड प्रतीक्षा करें। ताकि हम सर्वर को थ्रैश न करें।
  • <website-url>: यह फाइल डाउनलोड करने के लिए वेबसाइट यूआरएल है।

हैप्पी डाउनलोडिंग: स्माइली:


3

आप विंडोज / मैकओएस के लिए उपलब्ध क्रैक का उपयोग कर सकते हैं और होमब्रे के माध्यम से इंस्टॉल कर सकते हैं ।


मेरे लिए कुछ नया, धन्यवाद। सबसे अच्छा यह त्वरित और तेज़ है: वन -लाइनर। बस वसा में कटौती और सभी बकवास से बचें।
पीटर तेह

0

हम में से जो एक GUI के साथ एक अनुप्रयोग का उपयोग करेंगे, उनके लिए मैक ओएस एक्स के लिए सबसे सस्ता शेयरवेयर प्रोग्राम डीपवैक्यूम है , जो wgetउपयोगकर्ता के अनुकूल तरीके से लागू होता है, प्रीसेट की एक सूची के साथ जो आमतौर पर आवश्यक कार्यों को संभाल सकता है। आप प्रीसेट के रूप में अपने स्वयं के कस्टम कॉन्फ़िगरेशन भी सहेज सकते हैं।

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

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