如何使用php获取ajax页面内容

时间:2013-04-12 16:39:40

标签: php javascript ajax

我想从以下网站阅读赔率: http://uk.wettportal.com/Soccer/England/Premier_League/Arsenal_FC_-_Everton_FC_963003.html

使用ajax动态加载赔率。源页面不包含赔率。是否有任何技术可以使用php获取此类页面的内容?

1 个答案:

答案 0 :(得分:1)

如果data-url已修复,你可以使用简单的php one-liner立即使用它:
$data = json_decode(file_get_contents('http://domain.com/data.json'));

如果'ajax'数据网址没有修复,你首先需要获取主页(在线上减去json_decode)并从中获取实际的数据链接。

注意:如果网站的作者正确地完成了他的工作,可能会采取相应的措施,例如:检查引荐来源,浏览器的http标头,会话cookie等。
这将使获取数据变得更加困难(从来不可能)。

在这种情况下,您可以使用CURL或php的fsockopen(此处为doc)和模拟浏览器。
不要忘记cookie处理(因为那个站点使用了!!!我嗅到了流量),可能还有引用者(主页的url)。另外,请不要忘记X-Requested-With: XMLHttpRequest标题。


示例(针对您的情况):

从函数refresh_odds可以看到这些数据网址是如何构建的(我清理了格式化,因此很容易阅读):

var url = "/lib/ajax/getEventResult.php";
var data = "event_id=" + $("#event_id").val() 
         + "&partner=" + $("#partner").val() 
         + "&lang=" + $("#language").val();

var url = "/lib/ajax/getOddsTable.php";
var data = "partner=" + $("#partner").val() 
         + "&lang=" + $("#language").val() 
         + "&period=" + $("#period").val() 
         + "&betgame=" + $("#betgame").val() 
         + "&eventmode=" + $("#eventmode").val() 
         + "&event_id=" + $("#event_id").val() 
         + "&bettype=" + $("#bettype").val();

现在您知道您的php脚本必须在主机页面中搜索隐藏的输入字段ID才能构建实时数据网址。


更新(根据您的评论)

奇数的标签显示:

$("#period").val("fulltime");
refresh_odds();

期间标签执行:

$("#period").val(period);
refresh_odds();

了解它如何回归refresh_odds() ......?

祝你好运