如何在python中处理html表单?

时间:2019-03-16 09:08:06

标签: python web-scraping beautifulsoup python-requests

我有一个html页面,可以在其中进行解析并形成如下形式:

<select id="limit" name="limit" class="inputbox input-mini" size="1" onchange="this.form.submit()">
    <option value="5">5</option>
    <option value="10" selected="selected">10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    <option value="25">25</option>
    <option value="30">30</option>
    <option value="50">50</option>
    <option value="100">100</option>
    <option value="0">All</option>
</select>

此表单会影响页面外观(显示项目的限制)。如何将选项更改为“全部”并提交此表单以获取所有元素?

1 个答案:

答案 0 :(得分:2)

如我的评论中所述,我建议您进行研究how HTML forms,并进行投入。

您需要将数据发送到的URL由action参数确定,或者使用某些Javascript函数进行编码。 您需要使用的HTTP方法在表单的method参数中设置,或者默认情况下在get中设置。

这是在python中使用它的方式:

改编自requests模块的documentation

import requests

# You might need to choose the get method here depending on the value of the forms method parameter
response = requests.post("your-url.here", data={'limit': 0})

print(response.text)

修改

作为对评论的回应,我还将添加get请求的示例

import requests

response = requests.get("your-url.here", params={'limit': 0})

print(response.text)

与注释相比,该版本具有优势,它将为您处理URL编码特殊字符。