如何在robobrowser-python中发出POST请求

时间:2014-05-19 12:26:29

标签: python python-2.7 python-requests robobrowser

http://robobrowser.readthedocs.org/en/latest/api.html

我尝试使用browser.open(myurl)点击API并寻找类似于requests.post(url,data=data)的RB方法。

因为robobrowser建立在请求和beautifulsoup之上,所以我认为必须有办法这样做。

2 个答案:

答案 0 :(得分:4)

您可以重复使用requests.Session()对象的RoboBrowser对象来使用相同的Cookie执行您自己的POST

response = browser.session.post(...)

RoboBrowser州不会更新;您必须将response对象传递给RoboBrowser._update_state()方法。

browser._update_state(response)

但是,对于AJAX请求,您不需要这样做。

考虑到图书馆的未来版本可能会改变其工作方式;它不是一个记录在案的方法。

但是,通常您要发布到网站,因为您正在处理表单提交;将其留给提供的库功能(RoboBrowser.get_form(),然后RoboBrowser.submit_form())。

答案 1 :(得分:3)

从版本0.5.3开始,您可以发送如下的POST请求:

browser.open(url, method='post', data=data)

粗略的浏览器状态和会话将自动更新。