http://robobrowser.readthedocs.org/en/latest/api.html
我尝试使用browser.open(myurl)
点击API并寻找类似于requests.post(url,data=data)
的RB方法。
因为robobrowser建立在请求和beautifulsoup之上,所以我认为必须有办法这样做。
答案 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)
粗略的浏览器状态和会话将自动更新。