教你如何用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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
php smarty的预保留变量总结
Dec 04 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
php自动加载代码实例详解
Feb 26 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图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
实例详解Python装饰器与闭包
2019/07/29 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
党员学习十八大感想
2014/01/17 职场文书
农民致富事迹材料
2014/01/23 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
学生党员公开承诺书
2014/05/28 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL