Wget avec une URL qui contient #

11

J'essaie de télécharger une URL qui ressemble à http://www.somesite.com/restaurants.html#photo=22x00085.

Je l'ai mis entre guillemets simples, mais il ne télécharge que http://www.somesite.com/restaurants.html qui n'est pas la bonne page.

Y a-t-il une solution?

user1289749
la source
ne peut pas tester cela maintenant, mais d'après ce dont je me souviens,% 20 fonctionne pour l'espace, donc% 23 fonctionnerait probablement pour # (% 23 est le pourcentage de codage pour #)
lupincho
3
n'est-ce pas le même fichier HTML? Le # pourrait simplement dire au navigateur Web de sauter à une partie particulière de la page.
barlop

Réponses:

20

wgetfonctionne bien. La syntaxe URI spécifie que le fragment - la #foopartie - doit être interprété entièrement côté client et non utilisé lors de la récupération du document lui-même.

Par exemple, s'il s'agit d'une page HTML, le navigateur peut faire défiler la page jusqu'à une section nommée ou, dans votre cas, déclencher du code JavaScript qui affiche une photo particulière.

En d'autres termes, en ce qui wgetconcerne les URI

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

... pointez sur la même page /restaurants.html . C'est à votre navigateur de faire le reste. L'ouverture restaurants.html#photo=22x00085dans le navigateur devrait fonctionner correctement.

user1686
la source
8

Sans visiter le lien approprié, je ne peux pas dire lequel c'est, mais il n'y a que deux options:

Dennis
la source
J'ai vu de nombreux sites qui abusent ainsi du fragment d'URL; en haut de la liste est Google lui-même. Cela viole tout un tas de RFC, mais pas que beaucoup de gens semblent s'en soucier, car "ça marche" ...
Michael Hampton
1
@ MichaelHampton: Pourriez-vous indiquer exactement quels RFC il viole?
user1686
@grawity RFC 2396, la partie 2.4.3 peut être lue pour dire que # ne fait partie d'aucun URI. Cela semble être détendu dans la RFC 3986, étant assez vague pour ne rien définir.
Rich Homolka
1
@RichHomolka: Il dit seulement que "foo # bar" est en fait appelé "URI-Reference", composé de l'URI (utilisé pour la récupération des données) et du fragment (interprétation laissée à l'utilisateur-agent). Il ne serait violé que si le fragment était effectivement envoyé dans une requête HTTP.
user1686
0

Ce n'est pas l'URL de l'image. Il s'agit de l'URL d'une page qui utilise un script ou un autre code pour récupérer l'image. Essayez de charger la page avec JavaScript désactivé. C'est ce que wget recherche pour vous.

Pour trouver l'URL de l'image, essayez de visiter la page via votre navigateur, puis cliquez avec le bouton droit sur la photo. Il devrait y avoir une option pour afficher des informations sur l'image, y compris son URL.

Si cela ne fonctionne pas, c'est peut-être parce que l'image est en cours de chargement via Flash ou un autre programme côté client. Vous pouvez utiliser Fiddler ou Wireshark pour regarder quelle URL son chargement.

Si vous nous donnez l'URL réelle du site avec l'image, nous pouvons vous aider à déterminer comment l'image est chargée.

Jeremy Stein
la source