Come posso chiedere a un server web di pubblicare la loro versione "mobile friendly" delle loro pagine web con eww?


11

ewwUltimamente sto usando per navigare sul web alla ricerca di documentazione e cose del genere. Non mi piace il fatto che ewwriceva la stessa pagina Web di Firefox o Google Chrome, non può eseguire il rendering di pagine Web come fanno quei browser. Quindi, quello che voglio ottenere è far ewwdire ai siti Web che visita che inviano la versione mobile friendly delle loro pagine Web, quindi, avrei un layout più semplice reso eww(o almeno questo è il mio presupposto).


2
Non ho mai usato eww, ma il trucco potrebbe essere quello di falsificare il tuo User-Agent. Il più delle volte il server web verifica tale valore prima di reindirizzare l'utente alla versione mobile del sito Web.
Nsukami _

Risposte:


11

ewwusa la urllibreria, quindi possiamo aggiungere consigli url-http-user-agent-stringper falsificare la User-Agentstringa:

(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")))

Ho preso una stringa User-Agent del browser mobile da www.useragentstring.com.

Con questo consiglio ottengo la versione mobile di google.com; il tuo chilometraggio può variare.

(L'ho trovato usando M-x apropos RET user-agent RET.)


2
Potresti voler controllare che l'attuale modalità principale sia ewwprima di cambiare l'agente utente cambiandola incondizionatamente potrebbe rompere altri pacchetti a seconda della libreria di url
Iqbal Ansari

che dire emacs-w3m? come ottenere la versione mobile? Come so, in questi giorni stiamo effettivamente utilizzando un design reattivo, quindi il punto è una dimensione dello schermo falsa anziché una stringa agente.
chen bin,

la modifica dell'agente utente è necessaria perché alcuni server web serviranno una pagina priva di Javascript, qualcosa che non viene valutato da eww comunque ...
shackra

1
@IqbalAnsari: purtroppo ewwchiama url-http-user-agent-stringcon il buffer corrente in fundamental-mode(un buffer restituito da process-buffer), quindi non funziona. Sono d'accordo che sarebbe stato molto meglio per impostare la stringa user agent per ewwsolo , ma non so come raggiungere questo obiettivo.
Costantino,

1
@chenbin: devi impostare w3m-user-agent. Vedi questo post di Sacha Chua per un modo per farlo.
Costantino,

0

Nelle versioni recenti di Emacs, puoi semplicemente usare la variabile di personalizzazione 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")

Scusa, quanto è recente?
Shackra,

È stato introdotto il 5 novembre 2014.
tmalsburg,
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.