सूची से फ़ाइलें डाउनलोड करें


130

मैं (किसी पाठ फ़ाइल में सूचीबद्ध) wgetया कुछ अन्य स्वचालित तरीके से फ़ाइलों को कैसे डाउनलोड कर सकता हूं ?

नमूना फ़ाइल सूची:

www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf

जवाबों:


227

wget में इसके लिए एक अंतर्निहित झंडा है: wget -i your_list आप इस तरह की चीज़ को पढ़कर पा सकते हैंman wget


@ ऑरियनिमस अगर मैं लिंक 2 को छोड़ना चाहता हूं तो कैसे?
अल्हलाल

इस समाधान ने मेरे लिए काम किया। मैं इसे क्रमिक रूप से डाउनलोड करने में खुश था और समानांतर में नहीं।
Asiby

85

उन्हें समानांतर में प्राप्त करें

cat urlfile | parallel --gnu "wget {}"

डिफ़ॉल्ट रूप से यह आपके द्वारा कोर के रूप में कई प्रक्रियाओं के रूप में चलेगा, आप शायद इसे 10x ऊपर रैंप कर सकते हैं यदि आप वास्तव में समानांतर के बाद "-j 20" जोड़कर उन्हें जल्दी से नीचे खींचना चाहते हैं।


1
मैं एक के लिए बस काम नहीं कर सकता। मैं किसी भी खरीद को देखा नहीं है, wget के लिए गूंज स्विचिंग कुछ भी उत्पादन नहीं करता है
जैकब बोचेंस्की

कुछ पहले के ऑबंटस में इस स्थान में एक गूंगा दोष होता है: stackoverflow.com/questions/16448887/…
meawoppl

2
ध्यान दें कि 'आपके पास कोर के रूप में कई प्रक्रियाएँ चलेंगी' - नेटवर्क बैंडविड्थ संभवतः सीमित कारक के अधिक होने की संभावना है।
विल्फ

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

2
यदि आप अलग-अलग होस्टनाम के साथ रिश्तेदार URL (होस्टनाम के बिना संसाधन आईडी) की सूची का उपयोग करना चाहते हैं, तो यह बहुत उपयोगी है, उदाहरण: कैट यूरीफाइल | समानांतर --gnu "wget example1.com {}" और बिल्ली मूत्रालय | समानांतर --gnu "wget example2.com {}"
मौरिसियो सैंचेज़


9

parallelएक अंतर्निहित ध्वज --arg-file( -a) है जो स्रोत के रूप में एक इनपुट-फ़ाइल का उपयोग करेगा, जिससे आप बच सकते हैं cat |। आप उपयोग कर सकते हैं

parallel --gnu -a urlfile wget

या केवल parallel --gnu wget < urlfile


5
awk '{print "http://" $0;}' list.txt | xargs -l1 wget

जहाँ list.txt आपकी सूची फ़ाइल है


4

मैंने फ्लोरियन डिस्च का जवाब देखा।

मुझे यह bqcकमांड में पैरामीटर को शामिल करके काम करने के लिए मिला ।

xargs -i wget -bqc 'http://{}' < download.txt

सभी डाउनलोड पृष्ठभूमि में समानांतर में शुरू हुए।

  • -b: पृष्ठभूमि। शुरुआत के तुरंत बाद पृष्ठभूमि पर जाएं
  • -q: चुप। Wget का आउटपुट बंद करें
  • -c: जारी रखें। आंशिक रूप से डाउनलोड की गई फ़ाइल प्राप्त करना जारी रखें

1

लिंक फ़ाइल लिंक

डाउन लोड के लिए कमांड सभी लिंक फ़ाइल

cat links.txt | wget -i

3
यह काम नहीं करता। wget -i links.txtसही आदेश है।
हारी

नहीं, यह सही आदेश नहीं है। राइट कमांड यह है: "cat links.txt | wget -i"
ड्रीमकोडर

0

मैंने अभी इसका परीक्षण किया है:

xargs -a download_file -L1 wget

इससे मेरा काम बनता है। Txt फ़ाइल के अंदर लिंक अलग लाइनों में होना चाहिए।

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