6

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

我正在尝试使用browser.open(myurl)并寻找类似于requests.post(url,data=data).

由于 robobrowser 建立在 requests 和 beautifulsoup 之上,所以我认为必须有办法做到这一点。

4

2 回答 2

5

您可以重新使用requests.Session()对象的对象来使用相同的 cookieRoboBrowser执行您自己的 s:POST

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

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

browser._update_state(response)

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

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

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

于 2014-05-19T12:31:02.157 回答
3

从 0.5.3 版开始,您可以像这样发送 POST 请求:

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

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

于 2015-06-08T02:56:15.533 回答