Используя BeautifulSoup на Python, я пытаюсь почистить подстраницу этой страницы
https://www.mmorpg-stat.eu/0_fiche_alliance.php?pays=5&ftr=500208.all&univers=_146
Точнее говоря, подстраницу под названием ДРУГАЯ ИНФОРМАЦИЯ, кнопка которой имеет этот код
onclick="fcache12('faCacher');fcache13('ffond_gris');
document.form1_2date.statview.value='2';
document.forms['form1_2date'].submit();return false;"
, который вызывает методы fcache12()
и fcache13()
, а затем находит форму form1_2date
и отправляет ее, используя значение value='2'
(значения 0 и 1 для двух предыдущих кнопок)
<form name="form1_2date" method="post">
Проблема в том, что при нажатии на кнопку URL-адрес не изменяется, поэтому страница не может быть достигнута с помощью requests.get()
, но вместо этого следует использовать requests.post()
.
import requests, urllib.request
from bs4 import BeautifulSoup
url = 'https://www.mmorpg-stat.eu/0_fiche_alliance.php?pays=5&ftr=500208.all&univers=_146'
input = {} # what to put here?
response = requests.post(url, data = input)
Я прочитал, что для имитации нажатия на кнопку мне нужно определить значения формы, которые должны быть переданы, и что они определяются всеми тегами <input>
в форме.
Есть 12 <input>
s внутри form1_2date
1 <input name="keyf" id="keyf" type="hidden">
2 <input type="checkbox" name="zoomgraph_box" id="zoomgraph_box">
3 <input type="checkbox" name="zoomgraph_box" id="zoomgraph_box">
4 <input name="Submit" type="button" onclick="fcache12('faCacher');fcache13('ffond_gris');document.getElementById('menu_live_a').style.display='none';
document.form1_info3.zoomgraph.value=document.getElementsByName('zoomgraph_box')[0].checked;document.form1_info3.choixflash.value=document.getElementsByName('zoomgraph_box')[1].checked;
document.forms['form1_info3'].submit();return false;" style="font:9pt Arial, Helvetica, sans-serif;border: thin solid #666666; cursor:pointer; background:#EA6C11; color: #ffffff;-moz-border-radius: 10px;-webkit-border-radius: 10px;border-radius: 6px 6px 6px 6px; " value="Apply">
5 <input name="Submit2" type="button" onclick="document.getElementById('menu_live_a').style.display='none';" style="font:9pt Arial, Helvetica, sans-serif;border: thin solid #666666; cursor:pointer;background:#EA6C11; color: #ffffff;-moz-border-radius: 10px;-webkit-border-radius: 10px;border-radius: 6px 6px 6px 6px; " value="Cancel">
6 <input name="date_1" type="text" class="case_ss1 hasDatepicker" id="datepickera" value="13-10-2019" size="10" maxlength="10">
7 <input name="date_2" type="text" class="case_ss1 hasDatepicker" id="datepicker" value="19-10-2019" size="10" maxlength="10">
8 <input name="plot_1" type="hidden" id="plot_1">
9 <input name="Submit" type="button" onclick="fcache12('faCacher');fcache13('ffond_gris');document.getElementById('cache_date_j_div').style.display='none';document.form1_2date.plot_1.value='6';document.form1_2date.keyf.value='';document.forms['form1_2date'].submit();return false;" style="font:9pt Arial, Helvetica, sans-serif;border: thin solid #666666; cursor:pointer; background:#EA6C11; color: #ffffff;-moz-border-radius: 10px;-webkit-border-radius: 10px;border-radius: 6px 6px 6px 6px; " value="Apply">
10 <input name="Submit2" type="button" onclick="document.getElementById('cache_date_j_div').style.display='none';" style="font:9pt Arial, Helvetica, sans-serif;border: thin solid #666666; cursor:pointer; background:#EA6C11; color: #ffffff;-moz-border-radius: 10px;-webkit-border-radius: 10px;border-radius: 6px 6px 6px 6px; " value="Cancel">
11 <input name="statview" type="hidden" id="statview" value="">
12 <input name="statview_bis" type="hidden" id="statview_bis" value="">
Я читал, что словарь должен быть написан в виде {'key1': value1, 'key2': value2, ...}
, но я не понимаю, как его скомпилировать.