Как получить доступ к подстранице (тот же URL другой контент) с BeautifulSoup? - PullRequest
0 голосов
/ 17 октября 2019

Используя BeautifulSoup на Python, я пытаюсь почистить подстраницу этой страницы

https://www.mmorpg-stat.eu/0_fiche_alliance.php?pays=5&ftr=500208.all&univers=_146

Точнее, подстраницу под названием enter image description here

Проблема в том, что при нажатии на эту кнопку URL-адрес не изменяется (это называется подстраницей? Если нет, то что это?), Поэтому я не могу получить доступ к этой странице с помощью

url = '...'
requests.get(url)

Глядя на консоль браузера, код кнопки

<td width="250" align="center" valign="middle" class="Style1_f_j barre_joueur1 fond_56_1" style="cursor:pointer;text-transform: uppercase" onclick="fcache12('faCacher');fcache13('ffond_gris');document.form1_2date.statview.value='2';document.forms['form1_2date'].submit();return false;">
                 <span style="color:#ffffff;">&nbsp;&nbsp;Other information</span>
</td>

Все, что я могу понять, это то, что при нажатии кнопки вызывается какой-то метод fcache.

Как получить доступ к подстранице?

1 Ответ

1 голос
/ 17 октября 2019

Все, что я могу понять, это то, что при нажатии кнопка вызывает некоторый метод fcache.

onclick="fcache12('faCacher');fcache13('ffond_gris');document.form1_2date.statview.value='2';document.forms['form1_2date'].submit();return false;"

На самом деле она вызывает два разных метода: fcache12() и fcache13(). И затем он находит форму на странице и отправляет ее :

document.forms['form1_2date'].submit()

Если вы ищете 'form1_2date', вы найдете:

<form name="form1_2date" method="post">

Так чтосимулировать нажатие на эту кнопку, вам нужно позвонить requests.post() вместо requests.get(). Вам также необходимо определить значения формы, которые должны быть переданы. Они определяются всеми тегами <input> в форме.

В качестве альтернативы, вы можете использовать selenium или подобную библиотеку для симуляции пользователявзаимодействие в браузере, а не пытаться делать запросы напрямую.

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