Печать домена Cook ie в RequestsCookieJar с использованием Python 3 - PullRequest
1 голос
/ 17 марта 2020

Я работаю с Python модулем запросов и столкнулся с проблемой, которую не могу решить. Я относительно новичок в запросах, но даже с поиском в Google / документацией я попал в стену.

Я пытаюсь получить ссылку (или "домен") от указанного c cook ie, который в ответ на запрос GET, который я сделал. Я могу только печатать повар ie, а не домен. Объяснение ниже:

Код (см. Комментарии):

import pickle
import requests
import time

r = requests.post('https://example.com/AddToCartURL')
print("----------------------------------------")
cookies = r.cookies #prints all cookies
print(r.cookies)
time.sleep(3)

# Code below will now use cookies and do a GET request to checkout URL

r = requests.get("https://example.com/checkout", cookies=cookies)
print("HEADERS")
time.sleep(1)
print(r.headers)
print("---------")
print("Cookie")
print(r.cookies)
print("---------") # THIS IS WHERE MY ISSUE IS :
print(r.cookies['checkout']) # This prints the cookie itself
print(r.cookies['checkout']['domain'])

выходы и проблемы:

Итак, вот мой выпуски:

# 1 - CookieJar Cook ie показывается примерно так, когда я печатаю r.cookies:

<Cookie checkout=r3jk43nb42knj32--fjnk3jk2jkn2323njk for www.example.com/checkout/url>

И когда я печатаю (r. cookie ['checkout']) Я получаю повара ie, очевидно:

r3jk43nb42knj32 - fjnk3jk2jkn2323njk

Что я пытаюсь сделать здесь, по сути, это получить домен от это, что я пытаюсь сделать как:

print (r.cookies ['checkout'] ['domain'])

получить ответ:

Traceback (most recent call last):
  File "/Users/user/PycharmProjects/project/Main.py", line 29, in <module>
    print(r.cookies['checkout']['domain'])
TypeError: string indices must be integers

Что то, что вы найдете из быстрого поиска в Google. В отношении документации я не смог найти четкого ответа, вероятно, потому что я все еще плохо разбираюсь в поиске. Я попробовал очевидное использование целого числа, предполагая, что они ссылаются на индексирование. Однако при этом печатается один символ самого повара ie.

Что я пытаюсь напечатать, в частности, example.com/checkout/url из повара ie выше. Я пытаюсь взаимодействовать с ним, чтобы продолжить мой код в процессе оформления заказа.

Это пример полной готовки ie jar: (вызывается print (r. куки))

        <RequestsCookieJar[<Cookie random_other_cookie= 3j32fj302fj023jfi for example.com/checkoutURL>, <Cookie checkout=r3jk43nb42knj32--fjnk3jk2jkn2323njk for example.com/checkoutURL>]>

--------------------------------

# 2 - Неправильно ли я занимаюсь этим?

Немного дополнительной справочной информации, приведенный выше запрос GET дает ответ 301. Перемещение окончательно. Я на 99% уверен, что URL, на котором я остановился (по крайней мере, на переднем крае), - это URL, который мне нужен / тот же URL, что и у повара ie выше.

Мой вопрос не пытаться захватить домен у повара ie, а вместо этого как-то попытаться захватить URL перенаправления?

(он же URL, по которому заканчивается запрос, а не исходный URL https://example.com/checkout)

---------- --------------------------

Надеюсь, я достаточно хорошо изложил свои проблемы. Это мой первый пост в StackOverflow после нескольких месяцев потасканных ответов.

Спасибо.

...