Como posso solicitar um servidor da Web para veicular sua versão "amigável para dispositivos móveis" de suas páginas da Web com eww?

11

ewwUltimamente, estou usando para navegar na Web, procurando documentação e coisas assim. Não gosto de ewwreceber a mesma página da Web como o Firefox ou o Google Chrome, mas não pode renderizar páginas da Web como esses navegadores. Então, o que eu quero alcançar é ewwdizer aos sites que eles visitam e enviam a versão otimizada para dispositivos móveis de suas páginas, assim, eu teria um layout mais simples processado por eww(ou pelo menos essa é minha suposição).

shackra
fonte
2
Nunca usei eww, mas o truque pode ser falsificar seu User-Agent. Na maioria das vezes, o servidor da Web verifica esse valor antes de redirecioná-lo para a versão móvel do site.
Nsukami _

Respostas:

11

ewwusa a urlbiblioteca, para que possamos adicionar conselhos url-http-user-agent-stringpara falsificar a User-Agentstring:

(advice-add 'url-http-user-agent-string :around
            (lambda (ignored)
              "Pretend to be a mobile browser."
              (concat
               "User-Agent: "
               "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")))

Peguei uma sequência de User-Agent do navegador móvel www.useragentstring.com.

Com esse conselho, recebo a versão móvel do google.com; sua milhagem pode variar.

(Encontrei isso usando M-x apropos RET user-agent RET.)

Constantine
fonte
2
Você pode querer verificar que o modo mais atual é ewwantes de alterar a mudá-lo incondicionalmente user-agent pode quebrar outros pacotes dependendo biblioteca url
Iqbal Ansari
que tal emacs-w3m? como obter a versão móvel? Como eu sei, hoje em dia, na verdade, usamos design responsivo; portanto, o ponto é o tamanho de tela falso, em vez da sequência de agentes.
Chen bin
mudando user-agent é algo necessário porque alguns servidores web irá servir uma página falta de Javascript, algo que não é avaliada por eww de qualquer maneira ...
shackra
1
@IqbalAnsari: Infelizmente, ewwchama url-http-user-agent-stringcom o buffer atual em fundamental-mode(um buffer retornado por process-buffer), portanto isso não funciona. Concordo que seria muito melhor para definir a seqüência do agente do usuário para ewwúnica , mas eu não sei como conseguir isso.
Constantine
1
@chenbin: Você precisa definir w3m-user-agent. Veja este post de Sacha Chua para uma maneira de fazê-lo.
Constantine
0

Nas versões recentes do Emacs, você pode simplesmente usar a variável de personalização url-user-agent:

(setq url-user-agent "User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7\n")
Tmalsburg
fonte
Desculpe, quão recente?
shackra 6/06/2015
Foi introduzido em 5 de novembro de 2014.
tmalsburg