Wget के साथ डाउनलोड करते समय "अन्य" डोमेन को अनदेखा करें?


13

मैं www.website.com/XYZ के तहत लिंक क्रॉल करना चाहूंगा और केवल उन लिंक को डाउनलोड करूंगा जो www.website.com/ABC के अंतर्गत हैं।

मैं फ़ाइलों को प्राप्त करने के लिए निम्नलिखित wget कमांड का उपयोग कर रहा हूं:

wget  -I ABC -r -e robots=off --wait 0.25  http://www.website.com/XYZ

यह पूरी तरह से काम करता है जब मैं 1.13.4 wget का उपयोग करता हूं। लेकिन समस्या यह है कि मुझे इस कमांड का उपयोग एक सर्वर पर करना है, जिसमें 1.11 की छूट है और जब मैं उसी कमांड का उपयोग करता हूं, तो यह अतिरिक्त डोमेन जैसे कि:

www.website.de 
www.website.it 
...

मैं इस समस्या से कैसे बच सकता हूं? मैंने प्रयोग करने की कोशिश की

--exclude domains=www.website.de,www.website.it

हालाँकि यह उन डोमेन को डाउनलोड करता रहा।

यह भी ध्यान दें कि मैं उपयोग नहीं कर सकता --no-parentक्योंकि मैं चाहता हूं कि फाइलें ऊपरी स्तर पर हैं (मुझे वेबसाइट.com/ABC के तहत फ़ाइलें चाहिए। वेबसाइट.com/XYZ के तहत लिंक क्रॉल करके)।

कोई संकेत?


"नकली" URL का उपयोग न करें, और उस साइट के URL का उपयोग न करें जिसका आपकी समस्या से कोई लेना-देना नहीं है। आपके द्वारा सूचीबद्ध डोमेन किसी भी तरह से "उप-डोमेन" नहीं हैं, वे बस अलग-अलग डोमेन हैं, संभवतः एक ही कंपनी से संबंधित हैं।
guntbert

यहाँ कुछ गलत है। wgetडिफ़ॉल्ट रूप से मेजबानों को पार नहीं करना चाहिए, और आपको पुनरावर्ती दांव करते समय मेजबानों को पार करने के लिए -H/ --span-hostsविकल्प की आवश्यकता है । "www.website.com" "www.website.de" से पूरी तरह से अलग मेजबान है।
19013 में jw013

@guntbert क्षमा करें, मुझे लगा कि असली url देने से समस्या होगी। बेशक, मैं जिस वेबसाइट को क्रॉल करना चाहता हूं वह वेबसाइट.कॉम नहीं है। लेकिन जब मैं example.com को क्रॉल करता हूं, तो मैं example.it भी देखता हूं, example.de मुख्य निर्देशिका में (example.com के समान स्तर)।
user2779485

@ jw013 जैसा मैंने ऊपर कहा, जब मैं सिर्फ www.example.com/x देता हूं तो यह www.example.de, www.example.it को भी क्रॉल करता है। लेकिन यह केवल 1.11 नहीं 1.13 के साथ होता है। इसलिए मैं बहुत उलझन में हूं।
user2779485

यह बग जैसा दिखता है: wget 1.11 को अलग तरह से व्यवहार नहीं करना चाहिए, -Hहमेशा मूल मेजबान के बाहर पुनरावृत्ति करना आवश्यक है। -D www.website.comमदद करता है?
गाइल्स का SO- दुष्ट होना बंद हो '

जवाबों:


5

ये गलत है:

--exclude domains=www.website.de,www.website.it

सही तरीका है:

--exclude-domains www.website.de,www.website.it

पेज मैन पेज से:

--exclude-domains domain-list
      Specify the domains that are not to be followed.

सूची को अलग नहीं किया जाना चाहिए?
रूबों 77

@ rubo77 आप सही हैं, मैंने इसे बदल दिया है।
डैनियल वर्नर

18

आप इसके विपरीत प्रयास --max-redirect 0या उपयोग कर सकते हैं ।--domains example.com--exclude-domains example.com

देख:

  -D,  --domains=LIST              comma-separated list of accepted domains.
       --exclude-domains=LIST      comma-separated list of rejected domains.
       --follow-tags=LIST          comma-separated list of followed HTML tags.
       --ignore-tags=LIST          comma-separated list of ignored HTML tags.
  -np, --no-parent                 don't ascend to the parent directory.
  --max-redirect                   maximum redirections allowed per page.

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