Я пытаюсь (в рамках добросовестного использования) программно получить доступ к выводу следующего сайта:
import requests
import re
csrf_token = re.findall(r'<input type="hidden" name="_token" value="(.*)"',
front.text)[0]
url = 'https://screenpeek.io/shots'
payload = {'_token': csrf_token, 'device': 'iphone', 'url': 'www.reddit.com'}
response = requests.request("POST", url, data=payload)
print(response.text)
, что приводит к следующему выводу:
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Expired</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Raleway', sans-serif;
font-weight: 100;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.content {
text-align: center;
}
.title {
font-size: 36px;
padding: 20px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title">
The page has expired due to inactivity.
<br/><br/>
Please refresh and try again.
</div>
</div>
</div>
</body>
</html>
Мое предположение что для избежания ошибки неактивности требуется, чтобы сайт cook ie и laravel cook ie были динамически загружены в заголовок до того, как форма будет отправлена в какой-либо форме, например:
import requests
URL = 'https://screenpeek.io/'
session = requests.session()
front = session.get(URL)
cookies = session.cookies['XSRF-TOKEN']
laravel = session.cookies['laravel_session']
Но к сожалению, отсутствие документации по подключению файлов cookie и токенов для laravel почтовых запросов оставило меня в тупике (почти все примеры предназначены для входа в систему и не перенаправляют на динамически генерируемый URL); любая помощь будет принята с благодарностью.