Wget com URL que contém #

11

Estou tentando fazer o download de um URL semelhante http://www.somesite.com/restaurants.html#photo=22x00085.

Coloquei-o entre aspas simples, mas ele só baixa http://www.somesite.com/restaurants.html, que não é a página correta.

Há uma solução?

user1289749
fonte
não pode testar isso agora, mas pelo que eu me lembro% 20 obras para o espaço, de modo% 23 provavelmente trabalho para # (% 23 é o Percentual de Codificação para #)
lupincho
3
não é o mesmo arquivo HTML? O # pode apenas dizer ao navegador da Web para ir para uma parte específica da página.
Barlop #

Respostas:

20

wgetestá funcionando bem. A sintaxe do URI especifica que o fragmento - a #fooparte - deve ser interpretado inteiramente do lado do cliente e não usado ao recuperar o próprio documento.

Por exemplo, se for uma página HTML, o navegador pode rolar para uma seção nomeada ou, no seu caso, acionar algum código JavaScript que mostra uma foto específica.

Em outras palavras, no que diz wgetrespeito, os URIs

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

... aponte para a mesma página /restaurants.html . Cabe ao seu navegador fazer o resto. A abertura restaurants.html#photo=22x00085no navegador deve funcionar bem.

user1686
fonte
8

Sem visitar o link adequado, não sei dizer qual é, mas existem apenas duas opções:

Dennis
fonte
Eu já vi muitos sites que abusam do fragmento de URL dessa maneira; no topo da lista está o próprio Google. Isso viola um monte de RFCs, mas não que muitas pessoas parecem cuidado, uma vez que "ele funciona" ...
Michael Hampton
1
@ MichaelHampton: Você poderia apontar exatamente quais RFCs violam?
user1686
@rawraw RFC 2396, parte 2.4.3 pode ser lida para dizer que # não faz parte de nenhum URI. Isso parece relaxado na RFC 3986, sendo vago o suficiente para não definir nada.
Ricos Homolka
1
@RichHomolka: Diz apenas que "foo # bar" é realmente chamado de "Referência de URI", consistindo no URI (usado para recuperação de dados) e no fragmento (interpretação deixada ao agente do usuário). Seria violado apenas se o fragmento fosse realmente enviado em uma solicitação HTTP.
user1686
0

Esse não é o URL da imagem. É o URL de uma página que usa um script ou outro código para buscar a imagem. Tente carregar a página com o JavaScript desativado. É isso que o wget está buscando para você.

Para encontrar o URL da imagem, tente visitar a página pelo navegador e clique com o botão direito do mouse na foto. Deve haver uma opção para visualizar informações sobre a imagem, incluindo seu URL.

Se isso não funcionar, pode ser porque a imagem está sendo carregada através do Flash ou de algum outro programa do lado do cliente. Você pode usar o Fiddler ou o Wireshark para ver qual URL está sendo carregado.

Se você nos fornecer o URL real do site com a imagem, podemos ajudá-lo a determinar como a imagem está sendo carregada.

Jeremy Stein
fonte