Подтвердить что ты не робот

Использование файлов cookie Chrome в Python-Requests

Я пытаюсь войти на http://www.steampowered.com с помощью файлов cookie, которые у меня есть на моем сеансе Chrome.

Как только я захватил все данные таблицы cookie, используя команду SELECT * FROM cookie WHERE host_key LIKE '%steam%' и имена столбцов: PRAGMA table_info(cookie) и отсортировав все данные со списком, я не знаю, как это передать all до requests, чтобы файлы cookie стали пригодными для использования.

request docs говорят, что вам нужно передать в dict, т.е. cookies={'cookies':'are_working'}, но затем некоторые из клавиш name переписать друг друга, так как несколько из name: Steam_Language, хотя они разные хосты.

edit: Только что нашел Как добавить cookie в существующий экземпляр CookieJib cookielib в Python?, который может помочь мне, но я не знаю, как отформатировать Chrome cookies для cookielib

Мой вопрос: Как передать несколько файлов cookie на несколько сайтов в requests?

4b9b3361

Ответ 2

Имейте в виду, что вы пытаетесь сделать что-то, что спецификация HTTP намеренно пытается помешать вам (например, отправлять файлы cookie в домены, из которых они не пришли). Таким образом, вы можете быть обречены с самого начала. И чтобы усугубить вас, я бегло взглянул на то, как steampowered вводит логин, и у вас есть работа, вырезанная для вас.

Вернуться к вашему вопросу...

Теперь, если вы считаете, что ваши файлы cookie с отключенным сеансом действительны (что они могут не быть основаны на способах шифрования, обмена ключами и меток перехвата, которые выполняет страница входа в систему), вы можете войти в систему с библиотекой запросов, просто предоставив действительный файл cookie dict как состояние документов.

my_cookies = {'cookiename1': 'cookievalue1', 'cookiename2': 'cookievalue2'}
response = requests.get(
    'http://www.steampowered.com/mystuff',
    cookies=my_cookies)

Кроме того, я не знаю, какие данные хранятся в базах данных, из которых вы получаете файлы cookie, но имейте в виду, что они могут хранить все метаданные, которые поставляются вместе с заголовком "Set-Cookie" (истечение срока действия, путь, домен и т.д.). Эта информация использует пользовательский агент (Chrome, IE, библиотека запросов и т.д.), Чтобы определить, какие файлы cookie отправлять в запрос, но он не включен в запрос. Заголовок 'Cookie' имеет только пары name = value. Итак, все, что вам нужно предоставить в вашем файле cookie.

И если у вас есть два файла cookie с тем же именем, просто выберите его. Потому что, в конце концов, скорее всего, будет оценен только один, или сервер просто вернет ошибку.