Я пытаюсь (1) войти на веб-сайт с запросами, затем (2) обновить значения шести текстовых полей на подстранице с ограниченным доступом.Мой код, кажется, успешно вошел в систему.Код состояния равен 200, и в результате, возвращаемом из print (login.text), HTML-код целевой страницы отображается только после успешного входа в систему.
Однако, как только я пытаюсь опубликовать данные в шесть полей на следующей странице(diary_url), моя сессия запросов, кажется, не остается в системе.
Кто-нибудь знает, что вызывает мою проблему?Соответствующие HTML и Python ниже.
HTML страницы входа в систему
<div class="member-login">
<h2>Member Login</h2>
<ul class="list-unstyled">
<li>
</li>
<li class="username-field">
<label>Email Address:</label>
<input autocapitalize="none" class="text" id="username" name="username" placeholder="Email Address" size="12" type="text" value="" />
</li>
<li class="password-field">
<label>Password:</label>
<input class="text" id="password" name="password" placeholder="Password" size="12" type="password" value="" />
</li>
<li class="remember-field">
<input checked="checked" class="checkbox" id="remember_me" name="remember_me" type="checkbox" value="1" />
<label for="remember_me" >Remember me next time</label>
</li>
<li class="submit" >
<input type="submit" value="Log In" />
</li>
<li class="or or-static-page" >
<span>or</span>
<div class="hr"></div>
</li>
<li>
<a href="#" class="facebook-login-css bttn btn-primary" id="facebook-login-css">Log in with Facebook</a>
</li>
</ul>
</div>
HTML второй страницы, где я хотел бы представить новые данные по почте
<div class="col-1">
<h4>Meal Names:</h4>
<ol class="fieldset">
<li class="field">
<input class="text" id="meal_names_0_description" maxlength="30" name="meal_names[0][description]" size="30" type="text" value="A. 35P 3V 0F 20C" />
</li>
<li class="field">
<input class="text" id="meal_names_1_description" maxlength="30" name="meal_names[1][description]" size="30" type="text" value="B. 35P 3V 0F 20C" />
</li>
<li class="field">
<input class="text" id="meal_names_2_description" maxlength="30" name="meal_names[2][description]" size="30" type="text" value="C. 35P 3V 10F 20C" />
</li>
<li class="field">
<input class="text" id="meal_names_3_description" maxlength="30" name="meal_names[3][description]" size="30" type="text" value="D. 35P 3V 10F 35C" />
</li>
<li class="field">
<input class="text" id="meal_names_4_description" maxlength="30" name="meal_names[4][description]" size="30" type="text" value="E. 35P 3V 15F 55C" />
</li>
<li class="field">
<input class="text" id="meal_names_5_description" maxlength="30" name="meal_names[5][description]" size="30" type="text" value="WO. 35P 0V 0F 65C" />
</li>
</ol>
</div>
Пользовательский код Python для входа на веб-сайт и отправки новых имен полей
import secrets, requests
meals={
0:'Leaf',
1:'Crackor',
2:'Stinky',
3:'Grape',
4:'Appol',
5:'Bellay'
}
mealnames={
'meal_names_0_description': meals[0],
'meal_names_1_description': meals[1],
'meal_names_2_description': meals[2],
'meal_names_3_description': meals[3],
'meal_names_4_description': meals[4],
'meal_names_5_description': meals[5]
}
payload={
'username': secrets.user,
'password': secrets.pw
}
with requests.Session() as s:
login_url="https://www.myfitnesspal.com/account/login"
diary_url='https://www.myfitnesspal.com/account/diary_settings'
login = s.post(login_url, data=payload)
if(login.status_code!=200):
print("BAD")
go_to_diary = s.get(diary_url)
diary_page = s.post(diary_url, data=mealnames)