Scommetti con un URL che contiene #


11

Sto cercando di scaricare un URL simile http://www.somesite.com/restaurants.html#photo=22x00085.

L'ho inserito tra virgolette singole, ma scarica solo http://www.somesite.com/restaurants.html che non è la pagina corretta.

C'è una soluzione?


non posso provarlo ora, ma da quello che ricordo% 20 funziona per spazio, quindi% 23 probabilmente funzionerebbe per # (% 23 è la codifica percentuale per #)
lupincho,

3
non è lo stesso file HTML? Il # potrebbe semplicemente dire al browser Web di passare a una parte particolare della pagina.
barlop

Risposte:


20

wgetsta funzionando bene. La sintassi dell'URI specifica che il frammento - la #fooparte - deve essere interpretato interamente sul lato client e non utilizzato durante il recupero del documento stesso.

Ad esempio, se si tratta di una pagina HTML, il browser potrebbe scorrere fino a una sezione con nome o, nel tuo caso, attivare un codice JavaScript che mostra una particolare foto.

In altre parole, per quanto wgetriguarda gli URI

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

... punta alla stessa pagina /restaurants.html . Spetta al tuo browser fare il resto. L'apertura restaurants.html#photo=22x00085nel browser dovrebbe funzionare correttamente.


8

Senza visitare il link corretto, non posso dire quale sia, ma ci sono solo due opzioni:


Ho visto molti siti che abusano del frammento di URL in questo modo; in cima all'elenco c'è Google stesso. Questo viola un sacco di RFC, ma non che molte persone sembrano preoccuparsene, dal momento che "funziona" ...
Michael Hampton,

1
@MichaelHampton: Potresti indicare esattamente quali RFC viola?
user1686

@grawity RFC 2396, parte 2.4.3 può essere letta per dire che # non fa parte di nessun URI. Questo sembra essere rilassato in RFC 3986, essendo abbastanza vago da non definire nulla.
Rich Homolka,

1
@RichHomolka: dice solo che "foo # bar" è in realtà chiamato un "riferimento URI", costituito dall'URI (usato per il recupero dei dati) e dal frammento (interpretazione lasciata all'utente-agente). Sarebbe violato solo se il frammento fosse effettivamente inviato in una richiesta HTTP.
user1686

0

Questo non è l'URL per l'immagine. È l'URL di una pagina che utilizza uno script o un altro codice per recuperare l'immagine. Prova a caricare la pagina con JavaScript disattivato. Questo è ciò che wget ti sta prendendo.

Per trovare l'URL per l'immagine, prova a visitare la pagina tramite il browser e fai clic con il pulsante destro del mouse sulla foto. Dovrebbe esserci un'opzione per visualizzare informazioni sull'immagine, incluso il suo URL.

Se il problema persiste, è possibile che l'immagine sia stata caricata tramite Flash o altri programmi lato client. Puoi usare Fiddler o Wireshark per vedere quale URL sta caricando.

Se ci fornisci l'URL effettivo del sito con l'immagine, possiamo aiutarti a determinare come viene caricata l'immagine.

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.