刮擦使用ICEfaces制作的网站(会话在连续的ajax POST请求中过期)

时间:2014-10-28 06:04:14

标签: ajax node.js session web-scraping icefaces

我正在尝试通过node.js脚本抓取使用ICEfaces Web框架创建的网站。我已经成功处理了登录,然后从主页面获取了一些数据(即ice.session和ice.view,以及登录响应返回的JSESSIONID cookie)。

我遇到的问题是当我尝试对/ block / URL执行AJAX POST请求时。如果我自己执行请求,它会返回一些数据(而不是我需要的数据),但如果我在任何其他请求之后执行此操作,则会得到<session-expired/>。我发送请求的ICEfaces / block / URL中的哪一个(我已尝试使用/ send-receive-updates,/ dispose-views,甚至/ ping)。我甚至连续两次尝试同样的请求只是为了踢,我总是得到<session-expired/>响应作为第二个回复。当我使用Chrome浏览页面时,我已经监控了请求,据我所知,我正在发送所有正确的表单数据(以及正确的标题)。当我在浏览器中加载页面时页面工作得很好,所以必须有一些我做得不对的。


显然,你在ICEfaces中执行请求的顺序很重要(即它不是无状态的,我猜这是有道理的)。我只是移动了请求,最终得到了我想要的响应。

1 个答案:

答案 0 :(得分:0)

  

IceWindow,IceView和ViewState

每当您执行ajax提交时,都需要作为参数传递。

Managed bean使用ViewState值获取当前视图视图的上一个实例。