教你如何用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 相关文章推荐
PHP一些有意思的小区别
Dec 06 PHP
php 移除数组重复元素的一点说明
Nov 27 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
PHP函数in_array()使用详解
Aug 20 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP身份证校验码计算方法
Aug 10 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 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 简明安装教程 推荐
2010/03/07 PHP
php学习之流程控制实现代码
2011/06/09 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
理解Python中的类与实例
2015/04/27 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python子类继承父类构造函数详解
2019/02/19 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
优秀应届生推荐信
2013/11/09 职场文书
教师找工作推荐信
2013/11/23 职场文书
护士岗位职责
2014/02/16 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
项目投资合作意向书
2014/07/29 职场文书
教师师德师风整改措施
2014/10/24 职场文书
学习委员竞选稿
2015/11/20 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书