Запрограммированный файл cookie не принимается - PullRequest
0 голосов
/ 22 ноября 2018

Я работаю над веб-скребком на 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 становится недействительным "При просмотресессия заканчивается ".

Это очень загадочно.Чего мне не хватает во всем этом процессе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...