Jak mogę poprosić serwer WWW, aby wyświetlał swoją „przyjazną dla urządzeń mobilnych” wersję swoich stron internetowych za pomocą eww?

11

ewwOstatnio używam do przeglądania Internetu w poszukiwaniu dokumentacji i tego typu rzeczy. Nie podoba mi się, że ewwotrzymuje tę samą stronę internetową, co Firefox lub Google Chrome, nie może renderować stron internetowych tak jak te przeglądarki. Następnie chcę ewwpoinformować strony internetowe, które odwiedzają, i które wysyłają przyjazną dla urządzeń mobilnych wersję ich stron internetowych, dlatego miałbym prostszy układ renderowany przez eww(a przynajmniej takie jest moje założenie).

shackra
źródło
2
Nigdy nie korzystałem z eww, ale sztuczką może być sfałszowanie Twojego User-Agent. Przez większość czasu serwer WWW sprawdza tę wartość przed przekierowaniem do mobilnej wersji witryny.
Nsukami _

Odpowiedzi:

11

ewwkorzysta z urlbiblioteki, więc możemy dodać porady, url-http-user-agent-stringaby sfałszować User-Agentciąg:

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

Wziąłem ciąg User-Agent przeglądarki mobilnej www.useragentstring.com.

Z tą radą otrzymuję mobilną wersję google.com; twój przebieg może się różnić.

(Znalazłem to za pomocą M-x apropos RET user-agent RET.)

Konstantyn
źródło
2
Możesz sprawdzić, czy obecny tryb główny jest ewwprzed zmianą klienta użytkownika, zmiana go bezwarunkowo może uszkodzić inne pakiety w zależności od biblioteki
adresów
co emacs-w3m? jak zdobyć wersję mobilną? Jak wiem, obecnie używamy responsywnego projektu, więc chodzi o fałszywy rozmiar ekranu zamiast łańcucha agenta.
chen bin
zmiana user-agent jest czymś wymaganym, ponieważ niektóre serwery WWW będą obsługiwać stronę pozbawioną Javascript, coś co i tak nie jest oceniane przez
eww
1
@IqbalAnsari: Niestety ewwpołączenia url-http-user-agent-stringz bieżącym buforem w fundamental-mode(bufor zwracany przez process-buffer), więc to nie działa. Zgadzam się, że byłoby znacznie lepiej, aby ustawić ciąg agenta użytkownika na ewwtylko , ale nie wiem, jak to osiągnąć.
Constantine,
1
@chenbin: Musisz ustawić w3m-user-agent. Zobacz ten post przez Sacha Chua na jeden sposób, aby to zrobić.
Constantine,
0

W najnowszych wersjach Emacsa możesz po prostu użyć zmiennej dostosowywania 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
źródło
Przepraszam, jak aktualne?
shackra
Został wprowadzony 5 listopada 2014 r.
tmalsburg