¿Ignorar "otros" dominios al descargar con wget?


13

Me gustaría rastrear enlaces en www.website.com/XYZ y solo descargar los enlaces que están en www.website.com/ABC.

Estoy usando el siguiente comando wget para obtener los archivos que quiero:

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

Esto funciona perfectamente cuando uso wget 1.13.4. Pero el problema es que tengo que usar este comando en un servidor que tiene wget 1.11 y cuando uso el mismo comando, termina descargando dominios adicionales como:

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

¿Cómo puedo evitar este problema? Traté de usar

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

sin embargo, siguió descargando esos dominios.

También tenga en cuenta que no puedo usar --no-parentya que los archivos que quiero están en el nivel superior (quiero archivos en website.com/ABC rastreando enlaces en website.com/XYZ).

¿Alguna pista?


No use URL "falsas" y no use la URL de un sitio que no tenga nada que ver con su problema. Los dominios que usted enumeró no son de ninguna manera "subdominios", solo son dominios diferentes, probablemente pertenecientes a la misma compañía.
Guntbert

Algo está mal aquí. wgetno debe cruzar hosts de forma predeterminada, y necesita la opción -H/ --span-hostspara cruzar hosts al hacer un wget recursivo. "www.website.com" es un host completamente diferente de "www.website.de".
jw013

@guntbert lo siento, pensé que dar la URL real sería un problema. por supuesto, el sitio web que quiero rastrear no es website.com. pero cuando rastreo example.com, también veo example.it, example.de en el directorio principal (el mismo nivel que example.com).
user2779485

@ jw013 como dije anteriormente, cuando solo doy www.example.com/x también rastrea www.example.de, www.example.it. PERO esto solo sucede con wget 1.11 no 1.13 .. Entonces es por eso que estoy muy confundido.
user2779485

Esto parece un error: wget 1.11 no debería comportarse de manera diferente, -Hsiempre se ha requerido que se repita fuera del host original. Ciervas -D www.website.comayuda?
Gilles 'SO- deja de ser malvado'

Respuestas:


5

Esto está mal:

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

La forma correcta es:

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

Desde la página de manual de wget:

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

¿No debe estar la lista separada por Komma?
rubo77

@ rubo77 Tienes razón, he cambiado eso.
Daniel Werner

18

Puede intentarlo --max-redirect 0o usarlo --domains example.com como opuesto a --exclude-domains example.com.

Ver:

  -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.

55
Esto es mejor que la respuesta aceptada si desea incluir en la lista blanca los dominios en lugar de la lista negra
yunzen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.