Comment puis-je demander à un serveur Web de servir sa version «mobile friendly» de leurs pages Web avec eww?


11

J'utilise ewwrécemment pour naviguer sur le Web à la recherche de documentation et de choses comme ça. Je n'aime pas ewwrecevoir la même page Web que Firefox ou Google Chrome, il ne peut pas afficher les pages Web comme le font ces navigateurs Web. Ensuite, ce que je veux réaliser est de faire ewwdire aux sites Web qu'il visite qui envoient la version mobile de leurs pages Web, ainsi, j'aurais une mise en page plus simple rendue par eww(ou du moins c'est mon hypothèse).


2
Jamais utilisé eww, mais l'astuce pourrait être de truquer votre User-Agent. La plupart du temps, le serveur Web vérifie cette valeur avant de vous rediriger vers la version mobile du site Web.
Nsukami _

Réponses:


11

ewwutilise la urlbibliothèque, nous pouvons donc ajouter des conseils url-http-user-agent-stringpour simuler la User-Agentchaîne:

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

J'ai pris une chaîne User-Agent du navigateur mobile de www.useragentstring.com.

Avec ce conseil, j'obtiens la version mobile de google.com; Votre kilométrage peut varier.

(J'ai trouvé cela en utilisant M-x apropos RET user-agent RET.)


2
Vous voudrez peut-être vérifier que le mode principal actuel est ewwavant de changer l'agent utilisateur, le changer inconditionnellement pourrait casser d'autres packages en fonction de la bibliothèque d'url
Iqbal Ansari

qu'en est-il emacs-w3m? comment obtenir la version mobile? Comme je le sais, ces jours-ci, nous utilisons en fait un design réactif, donc le point est une fausse taille d'écran plutôt qu'une chaîne d'agent.
chen bin

changer d'agent utilisateur est quelque chose de nécessaire car certains serveurs web serviront une page manquant de Javascript, quelque chose qui n'est pas évalué par eww de toute façon ...
shackra

1
@IqbalAnsari: Malheureusement, les ewwappels url-http-user-agent-stringavec le tampon actuel dans fundamental-mode(un tampon renvoyé par process-buffer), donc cela ne fonctionne pas. Je suis d' accord qu'il serait préférable de définir la chaîne de l' agent utilisateur pour ewwseulement , mais je ne sais pas comment y parvenir.
Constantine

1
@chenbin: Vous devez définir w3m-user-agent. Voir cet article de Sacha Chua pour une façon de le faire.
Constantine

0

Dans les versions récentes d'Emacs, vous pouvez simplement utiliser la variable de personnalisation 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")

Désolé, quelle date?
shackra

Il a été introduit le 5 novembre 2014.
tmalsburg
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.