Ignora "altri" domini quando scarichi con wget?


13

Vorrei sottoporre a scansione i collegamenti su www.website.com/XYZ e scaricare solo i collegamenti su www.website.com/ABC.

Sto usando il seguente comando wget per ottenere i file che voglio:

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

Funziona perfettamente quando uso wget 1.13.4. Ma il problema è che devo usare questo comando su un server che ha wget 1.11 e quando uso lo stesso comando, finisce per scaricare domini aggiuntivi come:

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

Come posso evitare questo problema? Ho provato a usare

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

tuttavia ha continuato a scaricare quei domini.

Si noti inoltre che non posso usare --no-parentpoiché i file che voglio sono di livello superiore (voglio i file su website.com/ABC eseguendo la scansione dei collegamenti su website.com/XYZ).

Qualche suggerimento?


Non utilizzare URL "falsi" e non utilizzare l'URL di un sito che non ha nulla a che fare con il tuo problema. I domini che hai elencato non sono in alcun modo "sottodomini", sono solo domini diversi, probabilmente appartenenti alla stessa azienda.
Guntbert,

Qualcosa non va, qui. wgetnon dovrebbe attraversare gli host per impostazione predefinita, ed è necessaria l' opzione -H/ --span-hostsper attraversare gli host quando si esegue una wget ricorsiva. "www.website.com" è un host completamente diverso da "www.website.de".
jw013,

@guntbert scusa, ho pensato che dare il vero url sarebbe stato un problema. ovviamente, il sito Web che voglio sottoporre a scansione non è website.com. ma quando eseguo la scansione di example.com, vedo anche example.it, example.de nella directory principale (lo stesso livello di example.com).
user2779485,

@ jw013 come ho detto sopra, quando do solo www.example.com/x, esegue anche la scansione di www.example.de, www.example.it. MA questo succede solo con wget 1.11 non 1.13 .. Ecco perché sono molto confuso.
user2779485

Sembra un bug: wget 1.11 non dovrebbe comportarsi diversamente, -Hè sempre stato richiesto di ricorrere all'esterno dell'host originale. Does -D www.website.comaiuto?
Gilles 'SO- smetti di essere malvagio' il

Risposte:


5

Questo è sbagliato:

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

Il modo giusto è:

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

Dalla pagina man di wget:

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

l'elenco non deve essere separato da komma?
rubo77,

@ rubo77 Hai ragione, l'ho cambiato.
Daniel Werner,

18

È possibile provare --max-redirect 0o utilizzare --domains example.com come opposto di --exclude-domains example.com.

Vedere:

  -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
È meglio della risposta accettata se ti piace elencare in bianco i domini invece che in nero
yunzen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.