Кажется, что здесь происходит пара вещей, поэтому я буду обращаться к ним один за другим.
subprocess
модуль питона предназначен для использования взывать к системе, как если бы вы были с помощью командной строки. Он ничего не знает о «аутентифицированных сеансах», а командная строка (или оболочка) не знает, как использовать объект python, например сеанс, для работы с phantomjs
.
phantomjs
имеет привязки python since version 1.8, поэтому я ожидал бы, что это может быть упрощено, используя их. Однако я не использовал их, поэтому я не могу с уверенностью сказать, что они будут полезны.
Я смотрел на yslow
«s website и кажется, что нет никакого способа, чтобы передать его содержание, которое вы скачиваете с запросами. Даже тогда, содержание не будет иметь все (например: любой внешне размещенный JavaScript, который будет загружен на selenium
/phantomjs
или браузер, не загружен запросами)
yslow
кажется, что он обычно просто загружает URL для вы и выполняете его анализ. Однако, когда сайт находится за NTLM
, он сначала отправляет клиенту ответ 401, который должен указывать клиенту, что он должен аутентифицироваться. Кроме того, информация отправляется клиенту, который сообщает ему, как аутентифицировать и предоставляет ему параметры для использования при аутентификации для NTLM
. Вот как requests_ntlm
работает с requests
. Первый запрос выполнен и генерирует ответ 401, тогда обработчик аутентификации генерирует правильный заголовок (ы) и повторно отправляет запрос, поэтому вы видите ответ 200, привязанный к r
.
yslow
принимает представление JSON из заголовков, которые вы хотите отправить, так что вы можете попробовать использовать заголовки, найденные в r.request.headers
, но я сомневаюсь, что они будут работать.
Короче говоря, это не вопрос, который может вам помочь люди, которые обычно следуют за тегом requests
. И, глядя на документацию для yslow
, кажется, что она (технически) не поддерживает аутентификацию любого типа. yslow
разработчики могут утверждать, что он поддерживает базовую аутентификацию, поскольку он позволяет вам указывать заголовки.