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

过几天网站就要上线了。

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

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

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

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

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

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

当然说了,这里就,重点是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隐藏分数,也是可以滴,不过要去马化腾网站去获取数据了,这里就不详细说明了,提供个思路就可以了

(0)

相关推荐

  • PHP解析html类库simple_html_dom的转码bug

    这几天有在用simple_html_dom抓一些文章.不同网站的编码在国内基本上是gbk gb2312 utf-8.而以gb2312和utf-8居多. 我这一版的simple_html_dom有一个方法 convert_text 是这个样子的. 复制代码 代码如下: // PaperG - Function to convert the text from one character set to another if the two sets are not the same. functio

  • PHP simple_html_dom.php+正则 采集文章代码

    复制代码 代码如下: <?php //包含PHP Simple html Dom 类库文件 include_once('./simplehtmldom/simple_html_dom.php'); //采集html function getwebcontent($url){ $ch = curl_init(); $timeout = 10; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,

  • 浅析php插件 Simple HTML DOM 用DOM方式处理HTML

    simple_html_dom插件用dom处理html文件的利器使用:加载simple_html_dom.php文件 复制代码 代码如下: require_once 'simple_html_dom.php' new simple_html_dom对象 复制代码 代码如下: $dom = new simple_html_dom() 加载html 复制代码 代码如下: $dom->load($html); find()方法 复制代码 代码如下: $dom->find('div.lookLeftn

  • php解析html类库simple_html_dom(详细介绍)

    下载地址:https://github.com/samacs/simple_html_dom解析器不仅仅只是帮助我们验证html文档:更能解析不符合W3C标准的html文档.它使用了类似jQuery的元素选择器,通过元素的id,class,tag等等来查找定位:同时还提供添加.删除.修改文档树的功能.当然,这样一款强大的html Dom解析器也不是尽善尽美:在使用的过程中需要十分小心内存消耗的情况.不过,不要担心:本文中,笔者在最后会为各位介绍如何避免消耗过多的内存.开始使用上传类文件以后,有三

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

    过几天网站就要上线了. 最近完成了一个小功能,就是LOL数据获取, 比如:我给你一个号,你把这个号是否打过排位?战斗力是多少?胜率和所在的总场数数据获取过来 数据都在多玩的网站上可查,所以该做的功能就是远程抓取. 功能没啥亮点,就是简单的实现. 反正就是JS不能跨域,然后用PHP去跨域,用file_get_content好类或者是curl好,都不重要.重要是的能理解业务流程. 上面这个图就是执行业务流程图.清楚流程了,然后代码就好写了 当然说了,这里就,重点是PHP怎么去抓取数据的. 这里要介绍

  • 手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤

    配置说明 使用Pycharm 2020.1.1 professional 专业版.(据说只有专业版可以远程连接)如果不是专业的伙伴,可以用校园邮箱注册一个专业版,免费的哦! 步骤 1. 设置Connection 配置文件在这里Tools->Deployment->Configuration 进入后看到如下界面. 如果你是首次设置,需要点击左上角的"+"添加配置信息.类型选择"SFTP".然后添加SHH configuration信息,界面如下.填写Hos

  • 教你如何用Java替换Word中带有${}的内容

    一.概述 1.因为有些需求,需要把word文档里面的特定数据,设置成可变的:所以需要某种方式,把可变量用标签(如${变量名})替换,通过后端赋值此变量名,重新生成的Word就能根据后端设置的内容变化. 2.替换方法:准备一份word模板文档,如:word_mode.doc(或 word_mode.docx) 文件,把可变内容,用标签${变量名}替换(如图1姓名:${name}) 3.转成可读模板:全部设置完变量标签后,对此word文档进行另存为xml格式的文档(图2),保存后的文件名:word_

  • 教你如何用python开发一款数字推盘小游戏

    今年年初,新一季的<最强大脑>开播了,第一集选拔的时候大家做了一个数字游戏,名叫<数字华容道>,当时何猷君以二十几秒的成绩夺得该项目的冠军,看了这个游戏之后我决定要写一个<数字华容道>的程序,过去了半年,我终于记起了这件事,今天就来实现. 数字推盘游戏(n-puzzle)是一种智力游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等.十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战

  • 教你如何用Java根据日期生成流水号

    前言 生成流水号,在企业中可以说是比较常见的需求,尤其是订单类业务. 一般来说,需要保证流水号的唯一性. 如果没有长度和字符的限制,那么直接使用UUID生成一个唯一字符串即可,也可以直接使用数据库表中的主键,主键就是唯一的. 那么,如果限制了流水号必须多少位,这种怎么生成呢? 可以采用"前缀+日期+数字"的方式(ps:此方式是需要用到缓存的) 前缀:为了更好的标识这个流水号是属于哪种类型: 日期:为了防止重复: 数字:为了表示当前的流水所处序号. 需求:生成一个17位数的唯一流水号,&

  • 教你如何用python爬取王者荣耀月收入流水线

    前言 王者荣耀是最近几年包括现在一直都是最热销的手游,收益主要来源是游戏里面人物皮肤.今天就来爬取展示王者荣耀近一年收入流水线动图,看看王者荣耀有多赚钱(哈哈哈哈) 主要可视化内容: 一.App收入排行流水线 1.1.获取数据 数据来源于:七麦数据,里面数据都是通过异步加载,因此只需要找到异步链接,修改参数就可以直接获取到数据. 备注:需要cookie才可以获取数据. 请求链接 https://api.qimai.cn/pred/appMonthPred?analysis=eEcbRhNVVB9

  • 教你如何用Python实现人脸识别(含源代码)

    工具与图书馆 Python-3.x CV2-4.5.2 矮胖-1.20.3 人脸识别-1.3.0 若要安装上述软件包,请使用以下命令. pip install numpy opencv-python 要安装FaceRecognition,首先安装dlib包. pip install dlib 现在,使用以下命令安装面部识别模块 pip install face_recognition 下载人脸识别Python代码 请下载python面部识别项目的源代码: 人脸识别工程代码 项目数据集 我们可以使

  • Python办公自动化之教你如何用Python将任意文件转为PDF格式

    一.word转PDF 这里借助Python的docx2pdf去完成转换操作,该库的安装命令如下: pip install docx2pdf 目标:读取文件夹下的全部word文件,然后进行转换,最后保存到对应的文件夹中. 这里辰哥新建两个word文件作为演示,打开其中一个word看看 里面不仅有文字,同时包含有图片 import os from docx2pdf import convert word_path = 'word_path' word_to_pdf = 'word_to_pdf' f

  • 教你如何用Java简单爬取WebMagic

    一.Java爬虫--WebMagic 1.1 WebMagic总体架构图 1.2 WebMagic核心组件 1.2.1 Downloader 该组件负责从互联网上下载页面.WebMagic默认使用Apache HttpClient作为下载工具. 1.2.2 PageProcessor 该组件负责解析页面,根据我们的业务进行抽取信息.WebMagic使用Jsoup作为HTML解析工具,并基于其开发了解析Xpath的工具Xsoup. 1.2.3 Scheduler 该组件负责管理待抓取的URL,以及

  • 教你如何用C#制作文字转换成声音程序

    教你如何用C#制作文字转换成声音程序 在System.Speech命名空间下,SpeechSynthesizer类可以把文字读出来,一起来玩下~~ 首先在Windows窗体项目中引入System.Speech.界面部分: 后台代码也很简单,只不过调用了SpeechSynthesizer类的一些方法: using System.Windows.Forms; using System.Speech; using System.Speech.Synthesis; namespace WindowsFo

随机推荐