前言:由于刚刚接触curl函数,觉得功能强大,于是从网上搜索教程自己写了个抓取图片的方法.第二天想继续练练手,就去500彩票网站抓彩票的开奖数据.结果折腾了半天也采集不到,在网上查询了半天也没有找到.于是自己着手写了一下,代码仅供参考
开奖地址:http://kaijiang.500.com/ssc.shtml
本人使用火狐浏览器,F12开启调试模式,点击Network,点击XHR
此时,F5刷新页面,获取接口地址
接口地址:http://kaijiang.500.com/static/public/ssc/xml/qihaoxml/20171220.xml
//xml字符串转化成数组函数
function xmlToArray($xml){
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$val = json_decode(json_encode($xmlstring),true);
return $val;
}
//初始化curl会话
$ch = curl_init();
//设置地址
$url = 'http://kaijiang.500.com/static/public/ssc/xml/qihaoxml/20171220.xml';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行curl请求,接收返回数据
$data = curl_exec($ch);
//将xml字符串转化成数组
$arr = xmlToArray($data);
//四维数组->三维数组
$arr = $arr['row'];
//定义一个结果数组,来保存开奖信息
$res=array();
foreach($arr as $k=>$v){
$res[]=$v['@attributes'];
}
//var_dump($res);
foreach($res as $k=>$v){
echo '期号'.$v['expect'].'开奖号码'.$v['opencode']."<br/>";
}