替代使用 mechanize 来获取数据?

Alternative to using mechanize to fetch data?

目前,我正在使用 mechanize 填写表格并发送 POST 请求,然后我正在对响应进行 regex 搜索以获取数据(浮点数)。

有什么方法可以通过发送 POST 请求来实现吗?我知道这可以通过结合使用任何浏览器的开发人员工具和 requests 模块来发送请求,但我没有找到全面的教程。我还想要一些有关所涉及步骤的详细信息。

第一步:获取字段名

检查 HTML 代码并找到字段的 name 属性。比如这个页面的评论表单是(在Chrome,右击选择"inspect element"):

<textarea name="comment" cols="68" rows="3" 
placeholder="Use comments to ask for more information or 
suggest improvements. Avoid answering questions in comments."
></textarea>

字段名称是comment

第 2 步:assemble 每个字段 name: value 的字典(包括隐藏的输入)

我们称它为数据:

data = {
   "comment": "this is a comment",
   "post_id": 1234
}

第 3 步:使用 `requests.post'

data 参数
response = requests.post(url, data=data, cookies=cookies)

更高级的东西

如果您的表单有 file 个字段,您可能需要检查“More complicated POST requests" in the docs. Same goes for custom authentication, cookie handling”等