Wie kann ich einen Webserver anfordern, um seine "mobile freundliche" Version seiner Webseiten mit eww bereitzustellen?

11

Ich benutze in ewwletzter Zeit das Surfen im Internet, um nach Dokumentation und ähnlichen Dingen zu suchen. Ich mag es nicht, dass ewwdieselbe Webseite wie Firefox oder Google Chrome empfangen wird. Es kann keine Webseiten wie diese Webbrowser rendern. Was ich dann erreichen möchte, ist, ewwden Websites mitzuteilen, dass sie die mobile freundliche Version ihrer Webseiten senden , sodass ich ein einfacheres Layout von eww(oder zumindest meine Annahme) hätte.

Shackra
quelle
2
Nie eww verwendet, aber der Trick könnte sein, Ihren User-Agent zu fälschen. Meistens überprüft der Webserver diesen Wert, bevor er Sie zur mobilen Version der Website weiterleitet.
Nsukami _

Antworten:

11

ewwverwendet die urlBibliothek, sodass wir Ratschläge hinzufügen können, um url-http-user-agent-stringdie User-AgentZeichenfolge zu fälschen :

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

Ich habe eine User-Agent-Zeichenfolge für einen mobilen Browser entnommen www.useragentstring.com.

Mit diesem Rat bekomme ich die mobile Version von google.com; Ihr Kilometerstand kann variieren.

(Ich fand dies mit M-x apropos RET user-agent RET.)

Konstantin
quelle
2
Möglicherweise möchten Sie überprüfen, ob der aktuelle eww
Iqbal Ansari
was ist mit emacs-w3m? Wie bekomme ich eine mobile Version? Wie ich weiß, verwenden wir heutzutage tatsächlich responsives Design, daher ist der Punkt die gefälschte Bildschirmgröße anstelle der Agentenzeichenfolge.
Chen Bin
Das Ändern des Benutzeragenten ist erforderlich, da einige Webserver eine Seite ohne Javascript bereitstellen, was ohnehin nicht von eww ausgewertet wird ...
Shackra
1
@IqbalAnsari: ewwAufrufe leider url-http-user-agent-stringmit dem aktuellen Puffer in fundamental-mode(einem von zurückgegebenen Puffer process-buffer), so dass dies nicht funktioniert. Ich bin damit einverstanden , dass es viel besser wäre es , den User - Agent - String zu setzen für ewwnur , aber ich weiß nicht , wie dies zu erreichen.
Konstantin
1
@chenbin: Du musst einstellen w3m-user-agent. In diesem Beitrag von Sacha Chua finden Sie eine Möglichkeit, dies zu tun.
Konstantin
0

In neueren Versionen von Emacs können Sie einfach die Anpassungsvariable verwenden 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
quelle
Entschuldigung, wie aktuell?
Shackra
Es wurde am 5. November 2014 eingeführt.
Tmalsburg