Не удается скачать PDF файл с сайта

Нужно скачать выписку из налоговой. Код работает, но при условии, что сначала заходишь и скачиваешь выписку через браузер, в противном случае на стадии последнего запроса(response_two), получаю ошибку. Вероятно это связано с куками, пытался добавить, но результат не дало. Возможно дело в заголовках, не могу разобраться самостоятельно.

import requests


def parser(inn):
    url = 'https://egrul.nalog.ru'
    url_one = 'https://egrul.nalog.ru/search-result/'
    url_two = 'https://egrul.nalog.ru/vyp-download/'

    s = requests.Session()
    response = s.post(url, data={'query': inn})
    response_one = requests.get(url_one + response.json()['t'], cookies=response.cookies)
    response_two = requests.get(url_two + response_one.json()['rows'][0]['t'])
    with open("33.pdf", "wb") as code:
        code.write(response_two.content)


inn = int(input())
parser(inn)

Ответы (2 шт):

Автор решения: Andy Pavlov

Забыли куки из response_one прокинуть в response_two. Плюс на всякий случай в headers я добавил user-agent:

import requests


def parser(inn):
    url = 'https://egrul.nalog.ru'
    url_one = 'https://egrul.nalog.ru/search-result/'
    url_two = 'https://egrul.nalog.ru/vyp-download/'
    headers = {'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:90.0) Gecko/20100101 Firefox/90.0', }

    s = requests.Session()
    response = s.post(url, headers=headers, data={'query': inn})
    response_one = requests.get(url_one + response.json()['t'], cookies=response.cookies)
    response_two = requests.get(url_two + response_one.json()['rows'][0]['t'], cookies=response_one.cookies)
    with open("33.pdf", "wb") as code:
        code.write(response_two.content)


inn = int(input())
parser(inn)
→ Ссылка
Автор решения: snxx
from fake_useragent import UserAgent as usr

import requests


def parser(inn):
    ua = usr(cache=True)
    hdr = {
        'accept': '*/*',
        'user-agent': ua.chrome
    }
    url = 'https://egrul.nalog.ru'

    s = requests.Session()
    resp = s.post(url, headers=hdr, data={'query': inn})
    search = requests.get(f'{url}/search-result/' + resp.json()['t'], cookies=resp.cookies)
    download = requests.get(f'{url}/vyp-download/' + search.json()['rows'][0]['t'], cookies=search.cookies, stream=True)
    with open('33.pdf', 'wb') as file:
        for chunk in download.iter_content(8000):
            file.write(chunk)


if __name__ == '__main__':
    parser(inn = int(input()))

Попробуйте так, может сработает.

→ Ссылка