我想从以下网站阅读赔率:http: //uk.wettportal.com/Soccer/England/Premier_League/Arsenal_FC_-_Everton_FC_963003.html
赔率是使用 ajax 动态加载的。源页面不包含赔率。是否有任何技术可以使用 php 获取此类页面的内容?
我想从以下网站阅读赔率:http: //uk.wettportal.com/Soccer/England/Premier_League/Arsenal_FC_-_Everton_FC_963003.html
赔率是使用 ajax 动态加载的。源页面不包含赔率。是否有任何技术可以使用 php 获取此类页面的内容?
如果 data-url 是固定的,您可以使用简单的 php one-liner 立即使用它:
$data = json_decode(file_get_contents('http://domain.com/data.json'));
如果 'ajax' 数据 url 不固定,您首先需要获取主机页面(上面的行减去 json_decode)并从中获取实际的数据链接。
注意:如果网站的作者正确地完成了他的工作,那么可能会采取一些措施来解决这个问题,例如:检查引荐来源网址、浏览器的 http 标头、会话 cookie 等。
这将使获取数据变得更加困难(永远不可能) .
在这种情况下,您将使用 CURL 或 php 的fsockopen(此处为文档)并模拟浏览器。
不要忘记 cookie 处理(因为该站点使用它!!!我嗅探了流量)以及可能是引荐来源网址(主机页面的 url)。也不要忘记X-Requested-With: XMLHttpRequest
标题。
示例(针对您的情况):
从函数refresh_odds
中可以看到这些数据 url 是如何构建的(我清理了格式,所以它很容易阅读):
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();
现在您知道隐藏的输入字段 ID 是什么,您的 php 脚本必须在主机页面中搜索才能构建实时数据 URL。
更新(根据您的评论)
奇数的标签可以:
$("#period").val("fulltime");
refresh_odds();
期间选项卡执行以下操作:
$("#period").val(period);
refresh_odds();
看看它是如何回到refresh_odds()
...?
祝你好运