Python запросов, не возвращающих куки - PullRequest
2 голосов
/ 09 мая 2020

Я использую Python3 запросы для простого повара ie grab:

import requests

session = requests.Session()
response = session.get('https://www.radiotimes.com/tv/tv-listings/')

print(session.cookies.get_dict())

... это работает для некоторых сайтов, но не для этого конкретного. Что мне нужно сделать по-другому?

Спасибо

1 Ответ

2 голосов
/ 09 мая 2020

Эта страница использует Javascript для генерации повара ie.

Вы обнаружите, что когда вы отправляете запрос GET, он также отправляет GET запрос на страницу, чтобы приготовить повар ie.

enter image description here

enter image description here В вашем примере, возможно, вам нужно отправить запрос GET на эту страницу .Тогда вы можете делать то, что хотите:

import requests

session = requests.Session()
response = session.get('https://radiotimes-gb.radiotimes.com/abbKC8hLX1VJCIxejAmMSJ6JzBaM1hMQXx-fiwyKzF6JiFYTFJSQXx9LVgxLzIiQS8iIyIvLyIvWEEnM1hNSUtJTEtLTkF-IX5YNCYrISw0SXowLXpJKjAkSXomKzEiLyt8KUl-IX5MQSUvIiNYJTExLTBATlxATWFATWE0NDRJL3whJiwxJioiMEl-LCpATWExM0BNYTEzSCkmMDEmKyQwQE1h')

print(session.cookies.get_dict())

# {'_sp_v1_csv': '2.0.1003', '_sp_v1_data': '2:0:1589036314:1:0:1:1:0:0:_:-1', '_sp_v1_lt': '1:ab|true:', '_sp_v1_opt': '1:', '_sp_v1_ss': 'null', '_sp_v1_uid': '1:785:ca679d88-38f6-4c0d-b7bf-8491e074776c'}

Или я предлагаю вам использовать селен, это будет довольно просто.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.radiotimes.com/tv/tv-listings/")
cookie = {l["name"]:l["value"] for l in driver.get_cookies()}
print(cookie)
...