Как настроить пользовательский агент в w3m
Я использую w3m. Как мне переопределить пользовательский агент этого текстового веб-браузера? Я попытался установить -header "User-Agent: blah" в качестве примера, но я получаю следующую ошибку:
w3m: Can't load blah.
2 ответа
Я установил User-Agent, изменив файл ~/.w3m/config
и модифицирование user_agent
линия. У меня есть следующий текст, и он, кажется, работает как ожидалось: user_agent Mozilla/5.0 (Linux i686; U; w3m 0.5.3; en)
, Здесь нет знаков: или =, просто чтобы вы поняли используемый синтаксис.
Это с версией w3m 0.5.3.
Вы также можете установить его с w3m -header 'User-Agent: blah'
но проблема в том, что он появляется дважды в запросе. Вы можете увидеть заголовки, которые использует w3m, если вы настроили netcat "webserver":
$ netcat -lp 9999
# then in another terminal:
$ w3m -header 'User-Agent: foo' http://localhost:9999
# back at netcat:
GET / HTTP/1.0
User-Agent: w3m/0.5.3
Accept: text/html, text/*;q=0.5, image/*
Accept-Encoding: gzip, compress, bzip, bzip2, deflate
Accept-Language: en;q=1.0
Host: localhost:9999
User-Agent: foo
Таким образом, он отправляет 2 строки User-Agent, которые не могут быть правильно проанализированы реальным HTTP-сервером.
Чтобы обновить и уточнить некоторые моменты из хорошего ответа @richq:
- Новые установки w3m создают только пустую папку конфигурации (~/.w3m)
- Отсутствие ':' или '=' в строке пользовательского агента (UA) не имеет значения (w3m отправляет все, что находится в этой строке)
- Подтвердил, что использование опции -header для отправки второго UA - плохая идея (и ненужная)
Быстрый, однострочный для установки UA:
echo 'user_agent <my-UA>' > ~/.w3m/config
(Вставьте желаемый UA поверх<my-UA>
)И гораздо более простой способ проверить полученный UA - это просто взять одну из бесплатных страниц сайта UA, например.
w3m whatsmyuseragent.com -dump
(Прочтите UA на экране.)
w3m whatsmyua.info -o user_agent='Mozilla/5.0 (Linux i686; U; w3m 0.5.3; en)'
или
echo -e '"Mozilla/5.0 (Linux i686; U; w3m 0.5.3; en)"\n"Mozilla/5.0 (Linux x86_64; U; w3m 0.5.3; en)"' >.ua
w3m whatsmyua.info -o user_agent="$(shuf -n1 .ua)"