教你如何用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 相关文章推荐
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
php跨站攻击实例分析
Oct 28 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
基于PHP实现的事件机制实例分析
Jun 18 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
php探针不显示内存解决方法
Sep 17 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
教大家制作简单的php日历
2015/11/17 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
如何用Python合并lmdb文件
2018/07/02 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
使用python远程操作linux过程解析
2019/12/04 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
通知书大全
2015/04/27 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
如何用python清洗文件中的数据
2021/06/18 Python