Я работаю над веб-скребком на Python 2, который читает часть содержимого веб-сайта.Чтобы получить доступ к содержимому, мне нужно передать куки.Прямо сейчас я нахожу cookie, открывая веб-сайт в Chrome и находя cookie по информации сайта.Я жестко запрограммировал этот файл cookie в свой скребок и получил содержимое с веб-сайта.Тем не менее, файлы cookie становятся недействительными через несколько часов, после чего никакая информация не может быть извлечена с веб-сайта.Чтобы решить эту проблему, я пытаюсь обновить cookie в самом моем скребке, когда требуется новый cookie.
Я пробовал следующие два кода
Первый подход
import requests
import browsercookie
try:
cj = browsercookie.chrome()
session = requests.Session()
r = session.get(base_url, cookies=cj)
new_cookie = str(session.cookies.get_dict()['JSESSIONID'])
except Exception as e:
pass
Второй подход
with requests.Session() as s:
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
headers['Connection'] = 'keep-alive'
r = s.get(baseurl, headers=headers)
new_cookie = s.cookies.get_dict()['JSESSIONID']
Все эти коды возвращают файлы cookie, которые выглядят идеальнохорошо.Проблема, с которой я сталкиваюсь, состоит в том, что эти программно идентифицированные куки-файлы заставляют скребок не извлекать никакого результата.Когда я отправляю файл cookie, найденный в браузере, как жестко запрограммированный при отправке запроса на сайт от скребка, скребок получает DOM сайта.Но когда я отправляю файл cookie, найденный программным путем при отправке запроса на веб-сайт из скребка, скребок не может получить доступ к DOM веб-сайта.
Информация о файле cookie в браузере говорит о том, что файл cookie становится недействительным "При просмотресессия заканчивается ".
Это очень загадочно.Чего мне не хватает во всем этом процессе?