从AJAXREQUEST中抓取数据


Scrape data from AJAXREQUEST

我想从一个使用ajax请求将新数据从服务器加载到div.的网站中抓取数据

当我点击网站的按钮时,它会将新数据加载到网站中,我可以看到浏览器只使用以下帖子字符串进行1次POST请求:

AJAXREQUEST=_viewRoot&id376=j_id376&javax.faces.ViewState=j_id3&id376%3Aj_id382=j_id376%3Aj_id382&valueChanged=false&AJAX%3EVENTS_COUNT=1&

当我使用php-ccurl进行上述发布请求时,我没有得到任何有用的数据。

有人知道如何为这种请求收集数据吗?

更新1:

这就是我在php:中使用的内容

$ch = curl_init ('http://www.website.com');
$post_string = 'AJAXREQUEST=_viewRoot&j_id376=j_id376&javax.faces.ViewState=j_id3&j_id376%3Aj_id382=j_id376%3Aj_id382&valueChanged=false&AJAX%3AEVENTS_COUNT=1&';
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
$output = curl_exec ($ch);

我没有得到任何结果,也没有错误或消息。

您的问题可能不在于PHP代码,更可能是您实际发送到服务器的内容。我假设你将website.com列为你试图与之互动的任何服务的占位符,但由于你没有列出任何关于你将请求发送到哪里或收到什么的信息,我假设你向服务器发布的内容只是被忽略了,因为你发送的内容无效或不完整,或者需要进一步的POST/GET请求。另一种可能性是,您试图POST到一个需要经过身份验证的会话的服务(您列出的POST变量可能包括某种标识会话的令牌),但您尚未建立该会话。

我建议您首先在一个更简单的"受控测试用例"上测试代码。设置一个基本的web表单,当您向其POST值时,它会返回true或其他值。首先用更简单的情况测试您的代码,以确保POST代码有效。

然后使用LiveHTTPHeaders或Firebug等调试工具记录与服务器的整个POST/GET请求交互。最好先尝试用调试工具"回放"这种交互,以证明您的方法是有效的。然后,一旦您从高层确切地知道了需要做什么,就在PHP代码中重复这个过程。

根据您提供的信息,没有多少其他建议可以提供给您。