【问题标题】:submitting form via python requests/bs通过 python requests/bs 提交表单
【发布时间】:2018-03-06 11:55:44
【问题描述】:

我在网页上有以下表格:

<form method="POST" action="" name=“x”>Saison (click): 
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2011" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2012" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2013" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2014" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2015" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2016" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2017" type="submit">
    <input style="border:1px dotted silver;background-color:white" name=“y” value="2018" type="submit">
</form>

我想使用 BeautifulSoup 并请求获取当我按下其中一个提交按钮时生成的网页。这是如何工作的?

【问题讨论】:

标签: python python-3.x forms beautifulsoup request


【解决方案1】:

在网络选项卡的开发者工具中,可以看到表单数据只包含jama_saison:2013。所以,要传递这些数据,你必须使用这个:

year = 2013
data = {'jama_saison': year}
r = requests.post('https://www.oejv.com/bundesliga/tabellestandings/', data=data)

测试我们是否得到了正确的响应:

soup = BeautifulSoup(r.text, 'lxml')
print(soup.find('th', class_='bl-name').text)
# Erste Judo-Bundesliga 2013

只需将year 变量更改为您想要的任何年份。将其更改为 2017 年,将得到 Erste Judo-Bundesliga 2017 作为输出。

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多