目前,我正在使用 mechanize
填写表单并发送 POST 请求,然后对响应进行 regex
搜索以获取数据( float )。
有什么方法可以通过发送 POST 请求来做到这一点吗?我知道通过使用任何浏览器的开发人员工具和 requests
模块的组合来发送请求是可能的,但我未能找到全面的教程。我还想了解有关所涉及步骤的一些详细信息。
最佳答案
第一步:获取字段名称
检查 HTML 代码并找到该字段的 name
属性。例如,此页面上的评论表单为(在 Chrome 中,右键单击并选择“检查元素”):
<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 步:为每个字段(包括隐藏输入)组装一个 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 ”。 custom authentication 也是如此, cookie handling等
关于python - 使用 mechanize 获取数据的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30791203/