फ़ाइलों को wget के साथ कैसे डाउनलोड करें जहां पेज आपको डाउनलोड करने के लिए इंतजार करता है?


32

मैं wget का उपयोग कर sourceforge से एक फ़ाइल डाउनलोड करने की कोशिश कर रहा हूं, लेकिन जैसा कि हम सभी जानते हैं कि हमें डाउनलोड बटन पर क्लिक करना होगा और फिर ऑटो डाउनलोड करने के लिए इंतजार करना होगा। आप wget का उपयोग करके इस प्रकार की फ़ाइल को कैसे डाउनलोड करते हैं?

मैं इसे डाउनलोड करने का प्रयास कर रहा हूं: http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

लेकिन उस url लिंक पर एक wget करने से मुझे फ़ाइल नहीं मिलेगी क्योंकि फ़ाइल ऑटो ब्राउज़र के माध्यम से भरी हुई है।


3
वेब ब्राउज़र में उस पेज पर जाकर एक डायरेक्ट लिंक को भी सूचीबद्ध करना चाहिए - क्या आप उस के साथ wget का उपयोग कर सकते हैं?
ब्रिगेडियर

यदि आप फ़ाइल का असली नाम ("डाउनलोड" करने के बजाय) सुरक्षित रखना चाहते हैं, तो आपको इसे केवल आंके जाने की आवश्यकता हैwget --trust-server-names URL
एडम काटज़

जवाबों:


5

मैं अनिश्चित हूं कि कौन सा संस्करण wgetया OS और आपके बीच किसी प्रॉक्सी का मौजूद है और स्रोत wgetफ़ाइल है लेकिन जब मैंने "/ डाउनलोड" को हटा दिया और फ़ाइल एक्सटेंशन पर छोड़ दिया।

मैं अपने पूरे सत्र में पोस्ट या पास्टबिन को बाढ़ नहीं देना चाहता, लेकिन स्थानांतरण शुरू होने से पहले मुझे 302 और फिर 200 स्टेटस कोड मिले। जब आप कोशिश करते हैं तो क्या होता है wget?

Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found

[snipped for brevity]

HTTP request sent, awaiting response... 200 OK
Length: 13432789 (13M) [application/x-gzip]
Saving to: `download'

नोट का भी: कभी-कभार "डाउनलोड" पृष्ठ दर्पणों की एक सूची और एक स्क्रिप्ट है जो आपको उनमें से एक देता है जब एक निश्चित देरी हो गई है। SourceForge ने 10 साल पहले ऐसा किया था।
कैन-नेड_फूड

47

मैं curlइसके बजाय ऐसा करने का सुझाव दूंगा wget। यह स्विच का उपयोग कर पुनर्निर्देशन पालन कर सकते हैं -L, -Jऔर -O

curl -O -J -L http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

परिभाषाएँ स्विच करें

-O/--remote-name
  Write output to a local file named like the remote file we get. 
  (Only the file part of the remote  file  is  used, the path is cut off.)

-L/--location
  (HTTP/HTTPS)  If  the  server  reports that the requested page has moved 
  to a different location (indicated with a Location: header and a 3XX 
  response code), this option will make curl redo the request on the new 
  place.  If  used together  with  -i/--include  or -I/--head, headers from 
  all requested pages will be shown. When authentication is used, curl only 
  sends its credentials to the initial host. If a redirect takes curl to a 
  different host, it  won't be  able  to  intercept  the  user+password. 
  See also --location-trusted on how to change this. You can limit the
  amount of redirects to follow by using the --max-redirs option.

-J/--remote-header-name
  (HTTP) This option tells the -O/--remote-name option to  use  the  
  server-specified  Content-Disposition  filename instead of extracting a 
  filename from the URL.

देखें कर्ल आदमी पेज अधिक जानकारी के लिए।


2
कर्ल का उपयोग करने की आवश्यकता नहीं है, wgetपुनर्निर्देश का पालन कर सकते हैं, लेकिन यह तब तक नहीं होता है जब तक आप --max-redirectडिफ़ॉल्ट से नहीं बढ़ाते हैं , जो सुरक्षा कारणों से निश्चित रूप से है 0.
एंथन

wget1.19.2 का डिफॉल्ट वह है --max-redirect=20जो अधिकांश उपयोगों के लिए पर्याप्त होना चाहिए। मुझे यकीन नहीं है कि कब बदला गया ... या क्यों सुरक्षा के लिए आवश्यक था (उद्धरण की आवश्यकता है!), लेकिन मेरा अनुमान है कि वर्तमान पसंदीदा समाधान पुनर्निर्देशन का पालन करना था और इसके बजाय --trust-server-names"पुनर्निर्देशन लक्ष्य द्वारा प्रदान किए गए नाम को संरक्षित करने की आवश्यकता है" डाउनलोड "या" index.html? blah = barg "या जो भी प्रदान किया गया URL उपयोग करता है।
एडम काटज़

मामले में यह किसी को भी मदद करता है, यहां बताया गया है कि मुझे सही स्विच कैसे याद हैं। जेनिफर लोपेज सोचो। JLO। curl -JLO http://www.example.com/file.ext
कार्ल

15

में wgetआप उपयोग कर सकते हैं --content-dispositionविकल्प जो कुछ फाइल को डाउनलोड करने सीजीआई कार्यक्रमों के लिए उपयोगी है कि उपयोग "सामग्री-विन्यास" हेडर वर्णन करने के लिए क्या एक डाउनलोड की गई फ़ाइल का नाम होना चाहिए।

उदाहरण में:

wget --user-agent=Mozilla --content-disposition -E -c http://example.com/

अधिक जटिल समाधान (जैसे प्राधिकरण आवश्यक) के लिए, --load-cookies fileअपने सत्र को अनुकरण करने के लिए कुकी फ़ाइल ( ) का उपयोग करें।

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