python - 使用 mechanize 获取数据的替代方案?

标签 python post python-requests developer-tools mechanize-python

目前,我正在使用 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/

相关文章:

Python-Django-Heroku-导入错误-无法从 'fromshare' 导入名称 'socket'

python - 如何从 Google App Engine 应用程序解析 XML?

ios - 为什么我无法将文件作为 Alamofire 中的参数值之一附加?

python-3.x - 如何使用 .p12 证书对 rest api 进行身份验证

python - PyPy:导入错误:没有名为请求的模块

python - 使用 python 在 Elasticsearch 中进行身份验证

python - 如何使用美元符号和小数格式化 bar_label

python - 从 python 字典中提取信息

java - 将带有 JSON 数据的授权 curl -u post 请求转换为等效的 RestTemplate

php - 无法更改 PHP post 变量限制