教你如何用php实现LOL数据远程获取


Posted in PHP onJune 10, 2014

过几天网站就要上线了。

最近完成了一个小功能,就是LOL数据获取,

比如:我给你一个号,你把这个号是否打过排位?战斗力是多少?胜率和所在的总场数数据获取过来

数据都在多玩的网站上可查,所以该做的功能就是远程抓取。

教你如何用php实现LOL数据远程获取

功能没啥亮点,就是简单的实现。

反正就是JS不能跨域,然后用PHP去跨域,用file_get_content好类或者是curl好,都不重要。重要是的能理解业务流程。

教你如何用php实现LOL数据远程获取

上面这个图就是执行业务流程图。清楚流程了,然后代码就好写了

当然说了,这里就,重点是PHP怎么去抓取数据的。

这里要介绍一款非常好的PHP类,Simple_html_dom(自行百度获取文档)

public function getData(){
    $server = isset($_POST['gameserver'])?trim($_POST['gameserver']):NULL;
    $name = isset($_POST['gamename'])?trim($_POST['gamename']):NULL;
    import("@.ORG.SimpleHtmlDom");       //数据抓取类
        $url = "http://lolbox.duowan.com/playerDetail.php?serverName=".urlencode($server)."&playerName=".urlencode($name);
        $html = file_get_html($url);
        $dom = $html->find('.fighting',0)->children(1);
        $result['zdl'] =  strip_tags($dom->innertext);
        $doms = $html->find('.J_content',0)->children(1);
        //echo $html->find("#ranked_tier",0)->innertext;
        $temp =  $doms->plaintext;
        $tempArray = explode(" ",trim($temp));
        foreach($tempArray as $key=>$value)
        {
            if(!empty($value))
            {
                $tempArr[] = trim($value);
            }
        }
        unset($tempArray);
        //获取排位类型
        $pwtype = $tempArr[8];
        $pwtotal = $tempArr[12];
        $pwsl = $tempArr[14];
        if($pwtype == "5v5单双排")
        {
            $result['pw'] = $pwtotal;
            $result['pwsl'] = $pwsl;
        }else{
            $result['pw'] = "0";
            $result['pwsl'] = "0";
        }         $this->ajaxReturn($result) ;
}

上面这些代码,暴露了哥英语过了四级但还是硬伤的BUG。
上面这个类很简单,难点在于怎么去分析多玩查询页面的数据。用firebug看看吧。
写多了,你就知道的了。当然了,你想查询rank隐藏分数,也是可以滴,不过要去马化腾网站去获取数据了,这里就不详细说明了,提供个思路就可以了

PHP 相关文章推荐
怎么使 Mysql 数据同步
Oct 09 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
php接口与接口引用的深入解析
Aug 09 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
Yii开启片段缓存的方法
Mar 28 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
掌握PHP垃圾回收机制详解
Mar 13 PHP
PHP面向对象教程之自定义类
Jun 10 #PHP
微信营销平台系统?刮刮乐的开发
Jun 10 #PHP
百度地图API应用之获取用户的具体位置
Jun 10 #PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 #PHP
一个严格的PHP Session会话超时时间设置方法
Jun 10 #PHP
解决CodeIgniter伪静态失效
Jun 09 #PHP
CI(CodeIgniter)框架介绍
Jun 09 #PHP
You might like
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
如何在PHP中读写文件
2020/09/07 PHP
动态添加删除表格行的js实现代码
2014/02/28 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
详解vue-cli 脚手架 安装
2019/04/16 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
numpy排序与集合运算用法示例
2017/12/15 Python
实例讲解Python爬取网页数据
2018/07/08 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Python如何根据时间序列数据作图
2020/05/12 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
个人求职信范例
2014/01/29 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
家长写给孩子的评语
2014/04/18 职场文书
力学专业求职信
2014/07/23 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
水浒传读书笔记
2015/06/25 职场文书
企业团队精神心得体会
2016/01/19 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis