Làm cách nào tôi có thể yêu cầu một máy chủ web phục vụ phiên bản thân thiện với điện thoại di động của họ trên các trang web của họ với eww?


11

Tôi đang sử dụng ewwgần đây để duyệt web để tìm tài liệu và những thứ tương tự. Tôi không thích ewwnhận được cùng một trang web như Firefox hoặc Google Chrome, nó không thể hiển thị các trang web như các trình duyệt web đó làm. Sau đó, điều tôi muốn đạt được là ewwnói với các trang web rằng nó truy cập gửi phiên bản thân thiện với thiết bị di động của trang web của họ, do đó, tôi sẽ có bố cục đơn giản hơn được hiển thị bởi eww(hoặc ít nhất đó là giả định của tôi).


2
Không bao giờ sử dụng eww, nhưng mẹo có thể là giả mạo Tác nhân người dùng của bạn. Hầu hết thời gian máy chủ web kiểm tra giá trị đó trước khi chuyển hướng bạn đến phiên bản di động của trang web.
Nsukami _

Câu trả lời:


11

ewwsử dụng urlthư viện, vì vậy chúng tôi có thể thêm lời khuyên url-http-user-agent-stringđể giả mạo User-Agentchuỗi:

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

Tôi lấy một chuỗi trình duyệt User-Agent từ trình duyệt di động www.useragentstring.com.

Với lời khuyên này, tôi nhận được phiên bản di động của google.com; số dặm của bạn có thể thay đổi.

(Tôi tìm thấy điều này bằng cách sử dụng M-x apropos RET user-agent RET.)


2
Bạn có thể muốn kiểm tra xem chế độ chính hiện tại có ewwtrước khi thay đổi tác nhân người dùng thay đổi nó một cách vô điều kiện có thể phá vỡ các gói khác tùy thuộc vào thư viện url
Iqbal Ansari

những gì về emacs-w3m? Làm thế nào để có được phiên bản di động? Như tôi biết, ngày nay chúng ta thực sự sử dụng thiết kế đáp ứng, vì vậy điểm chính là kích thước màn hình giả thay vì chuỗi đại lý.
chen bin

thay đổi tác nhân người dùng là điều bắt buộc vì một số máy chủ web sẽ phục vụ một trang thiếu Javascript, dù sao đó cũng không được đánh giá bởi eww ...
shackra

1
@IqbalAnsari: Thật không may, ewwcác cuộc gọi url-http-user-agent-stringvới bộ đệm hiện tại trong fundamental-mode(một bộ đệm được trả về bởi process-buffer), vì vậy điều này không hoạt động. Tôi đồng ý rằng nó sẽ là tốt hơn nhiều để thiết lập người dùng chuỗi đại lý cho ewwchỉ , nhưng tôi không biết làm thế nào để đạt được điều này.
Constantine

1
@chenbin: Bạn cần đặt w3m-user-agent. Xem bài đăng này của Sacha Chua cho một cách để làm điều đó.
Constantine

0

Trong các phiên bản gần đây của Emacs, bạn chỉ cần sử dụng biến tùy chỉnh 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")

Xin lỗi, gần đây thế nào?
shackra

Nó được giới thiệu vào ngày 5 tháng 11 năm 2014.
tmalsburg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.