python - 如何使用 Python Requests 模块模拟 HTTP 发布请求?

标签 python forms post python-requests

This是我正在尝试使用的模块,并且我正在尝试自动填写一个表格。我想使用 Requests over Mechanize 的原因是因为使用 Mechanize,我必须先加载登录页面,然后才能填写并提交,而使用 Requests,我可以跳过加载阶段并直接发布消息(希望)。基本上,我试图让登录过程消耗尽可能少的带宽。

我的第二个问题是,在登录过程和重定向之后,是否可以不完全下载整个页面,而只检索页面标题?基本上,只有标题就可以告诉我登录是否成功,所以我想尽量减少带宽使用。

当涉及到 HTTP 请求和诸如此类的东西时,我是一个菜鸟,所以任何帮助将不胜感激。仅供引用,这是一个学校项目。

edit 问题的第一部分已经回答。我现在的问题是第二部分

最佳答案

一些示例代码:

import requests

URL = 'https://www.yourlibrary.ca/account/index.cfm'
payload = {
    'barcode': 'your user name/login',
    'telephone_primary': 'your password',
    'persistent': '1'  # remember me
}

session = requests.session()
r = requests.post(URL, data=payload)
print r.cookies

第一步是查看您的源页面并识别正在提交的 form 元素(使用 Firebug/Chrome/IE 工具(或仅查看源))。然后找到 input 元素并确定所需的 name 属性(见上文)。

您提供的 URL 恰好有一个“记住我”,虽然我没有尝试过(因为我不能),但这意味着它会在一段时间内发出一个 cookie 以避免进一步登录——即cookie 保存在 request.session 中。

然后只需使用 session.get(someurl, ...) 来检索页面等...

关于python - 如何使用 Python Requests 模块模拟 HTTP 发布请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13147914/

相关文章:

javascript - HTML 按钮可以执行 POST 请求吗?

python - keras中的反卷积层

python - 从索引中检索列名 (Python)

python - 如何根据输入的单词给出评分

python - Django - 如何在表单中添加自定义错误消息?

javascript - 必填字段未收到 form_for 错误

javascript - jQuery 函数未提交 Ajax 请求

ios - 如何从 iOS 为 Disqus 创建帖子?

html - 与 Wordpress 中的自定义 CSS 和重力形式对齐

php - 发布变量和标签字段 - 已更新