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.