替代使用 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”等
目前,我正在使用 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”等