在Python上使用BeautifulSoup,我正在尝试抓取此页面的子页面
https://www.mmorpg-stat.eu/0_fiche_alliance.php?pays=5&ftr=500208.all&univers=_146
问题是,通过单击该按钮,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;"> Other information</span>
</td>
我能理解的是,当单击该按钮时,它会调用某些fcache
方法。
如何访问子页面?
答案 0 :(得分:1)
我能理解的是,当单击该按钮时,它将调用某些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
或类似的库来模拟浏览器中的用户交互,而不必尝试直接发出请求。