#google-analytics #http-headers #phantomjs #casperjs #headless-browser
#google-analytics #http-заголовки #phantomjs #casperjs #безголовый браузер
Вопрос:
Я запускаю некоторые тесты с PhantomJS / CasperJS в Ubuntu и Google Analytics, и у меня возникают проблемы с GA для правильного распознавания моих языковых настроек, которые я отправляю в заголовках HTTP-запроса.
Независимо от того, что я ввожу в заголовок Accept-Language, в конечном итоге GA классифицирует язык как «c».
Я уверен, что мои заголовки Accept-Language верны, вот пример:
ACCEPT-ENCODING:gzip, deflate
CONNECTION:Keep-Alive
ACCEPT-LANGUAGE:en-US
USER-AGENT:Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
ACCEPT:text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8
После долгих часов проб и ошибок я выяснил, что C фактически был настройкой по умолчанию для переменной LANG env внутри самой Ubuntu:
LANG=C.UTF-8
На самом деле я могу повлиять на классификацию Google Analytics, изменив свои переменные ENV, используя следующую команду из командной строки:
export LC_ALL="en_US.UTF-8"
Это не сработает, если я установлю только «экспортировать LC_LANG» или «ЯЗЫК». Я тоже не уверен, почему.
Но как мне управлять этим параметром изнутри PhantomJS / CasperJS?Я не могу / не хочу менять свои переменные ENV для каждого запуска PhantomJS из CLI, я тестирую сразу несколько языков в больших количествах.
Кто-нибудь сталкивался с этим и может помочь?
Ответ №1:
Мне удалось найти хакерское решение этой проблемы. Я просто использую следующую команду из командной строки:
$ LC_ALL=en-gb phantomjs script.js
и это правильно передает Accept-Language в Google Analytics.
Я думаю, что есть проблема с корректной передачей заголовков запросов CasperJS в PhantomJS.