どうすれば、Webサーバーに「モバイルフレンドリー」バージョンのWebページを提供するよう要求できますか。


11

私はeww最近、ドキュメントやそのようなものを探すためにウェブを閲覧するために使用しています。ewwFirefoxまたはGoogle Chromeと同じWebページを受信するのが嫌いです。これらのWebブラウザーのようにWebページをレンダリングできません。次に、私が達成したいのはewwモバイルフレンドリーバージョンのWebページを送信するWebサイトを訪問することを伝えることです。したがって、私はより簡単なレイアウトをレンダリングしますeww(または少なくともそれが私の想定です)。


2
ewwを使用したことはありませんが、コツはユーザーエージェントを偽造することです。ほとんどの場合、Webサーバーは、モバイルバージョンのWebサイトにリダイレクトする前にその値を確認します。
Nsukami _ 2014

回答:


11

ewwurlライブラリを使用するのでurl-http-user-agent-stringUser-Agent文字列を偽造するためのアドバイスを追加できます。

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

モバイルブラウザのUser-Agent文字列をから取得しましたwww.useragentstring.com

このアドバイスで私はのモバイル版を手に入れましたgoogle.com。あなたのマイレージは異なる場合があります。

(私はこれを使用してこれを見つけましたM-x apropos RET user-agent RET。)


2
ewwユーザーエージェントを変更する前に現在のメジャーモードであることを確認したい場合があります。無条件に変更すると、URLライブラリに応じて他のパッケージ壊れる可能性があります
Iqbal Ansari

どうemacs-w3mですか?モバイル版を入手するには?私が知っているように、最近は実際にレスポンシブデザインを使用しているため、ポイントはエージェント文字列ではなく偽の画面サイズです。
チェンビン2014

ユーザーエージェントを変更すると、いくつかのWebサーバはJavascript、とにかくEWWによって評価されていない何か欠けているページを提供しますので、必要なものです...
shackra

1
@IqbalAnsari:現在のバッファー(によって返されるバッファー)を使用してeww呼び出しurl-http-user-agent-stringを行うため、これは機能しません。ユーザーエージェント文字列のみに設定する方がはるかに良いことに同意しますが、これを実現する方法はわかりません。fundamental-modeprocess-buffereww
コンスタンティン

1
@chenbin:を設定する必要がありますw3m-user-agent。それを行う1つの方法については、Sacha Chuaによるこの投稿を参照してください。
コンスタンティン

0

Emacsの最近のバージョンでは、単にカスタマイズ変数を使用できます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")

すみません、最近ですか。
shackra 2015

これは、11月5日、2014年に導入されました
tmalsburg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.