Wget con URL que contiene #

11

Estoy tratando de descargar una URL como esta http://www.somesite.com/restaurants.html#photo=22x00085.

Lo puse entre comillas simples, pero solo descarga http://www.somesite.com/restaurants.html, que no es la página correcta.

¿Hay alguna solución?

usuario1289749
fuente
no puedo probar esto ahora, pero por lo que recuerdo% 20 funciona para el espacio, por lo que% 23 probablemente funcionaría para # (% 23 es el porcentaje de codificación para #)
lupincho
3
¿No es el mismo archivo HTML? El # podría indicarle al navegador web que salte a una parte particular de la página.
barlop

Respuestas:

20

wgetestá funcionando bien La sintaxis de URI especifica que el fragmento , la #fooparte, se debe interpretar completamente del lado del cliente y no se debe usar al recuperar el documento.

Por ejemplo, si se trata de una página HTML, el navegador puede desplazarse hacia abajo a una sección con nombre o, en su caso, activar algún código JavaScript que muestre una foto en particular.

En otras palabras, en lo que wgetrespecta, los URI

  • http://www.somesite.com/restaurants.html#photo=22x00085 y
  • http://www.somesite.com/restaurants.html

... apunta a la misma página /restaurants.html . Depende de su navegador hacer el resto. Abrir restaurants.html#photo=22x00085en el navegador debería funcionar bien.

usuario1686
fuente
8

Sin visitar el enlace apropiado, no puedo decir cuál es, pero solo hay dos opciones:

Dennis
fuente
He visto muchos sitios que abusan del fragmento de URL de esta manera; en la parte superior de la lista está Google ellos mismos. Esto viola un montón de RFC, pero no parece que a mucha gente le importe, ya que "funciona" ...
Michael Hampton
1
@MichaelHampton: ¿Podría señalar exactamente qué RFC viola?
user1686
@grawity RFC 2396, la parte 2.4.3 se puede leer para decir que # no es parte de ningún URI. Esto parece estar relajado en RFC 3986, siendo lo suficientemente vago como para no definir nada.
Rich Homolka
1
@RichHomolka: Solo dice que "foo # bar" en realidad se llama una "Referencia URI", que consiste en el URI (utilizado para la recuperación de datos) y el fragmento (interpretación dejada al usuario-agente). Se violaría solo si el fragmento se envió realmente en una solicitud HTTP.
user1686
0

Esa no es la URL de la imagen. Es la URL de una página que usa un script u otro código para obtener la imagen. Intenta cargar la página con JavaScript desactivado. Eso es lo que wget está buscando para ti.

Para encontrar la URL de la imagen, intente visitar la página a través de su navegador y luego haga clic derecho en la foto. Debe haber una opción para ver información sobre la imagen, incluida su URL.

Si eso no funciona, puede ser porque la imagen se está cargando a través de Flash o algún otro programa del lado del cliente. Puede usar Fiddler o Wireshark para ver qué URL se está cargando.

Si nos proporciona la URL real del sitio con la imagen, podemos ayudarlo a determinar cómo se carga la imagen.

Jeremy Stein
fuente