教你如何用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 中文处理技巧
Apr 25 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
sae使用smarty模板的方法
Dec 17 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
PDO::query讲解
Jan 29 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
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
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
SWFObject Flash js调用类
2008/07/08 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
让python json encode datetime类型
2010/12/28 Python
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python实现网站微信登录的示例代码
2019/09/18 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
pycharm导入源码的具体步骤
2020/08/04 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
护理学专业推荐信
2013/12/03 职场文书
村级换届选举方案
2014/05/10 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
教育教学读书笔记
2015/07/02 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书