手机版

教你如何用php实现LOL数据远程采集

时间:2021-11-06 来源:互联网 编辑:宝哥软件园 浏览:

网站将在几天后上线。最近完成了一个小功能,就是LOL数据采集,比如:我给你一个数字,这个数字你排名了吗?战斗力如何?胜率和获得数据的字段总数可以在有很多游戏的网站上查看,所以要做的功能是远程抓取。

功能上没有亮点,但实现起来很简单。反正JS不能跨域没关系,然后用PHP跨域,用file_get_content当好类或者curl当好类。是的,了解业务流程很重要。

上图是执行业务的流程图。过程很清楚,然后代码很容易写。当然,这里的重点是PHP如何抓取数据。这里介绍一个非常好的PHP类,Simple_html_dom(从百度获取文档)的复制代码如下:公共函数getdata(){ $ server=isset($ _ post['游戏服务器'])?trim($ _ POST[' gameserver ']): NULL;$name=isset($_POST['gamename'])?trim($ _ POST[' gamename ']): null;导入(' @ . org . SimpleHTML DoM ');//数据捕获类$ URL=' http://lol box . duo wan.com/playerdetail . PHP?服务器名='。' urlencode($server),'playerName='。urlencode($ name);$ html=file _ get _ html($ URL);$dom=$html-find('。战斗',0)-儿童(1);$ result[' zdl ']=strip _ tags($ DOM-inner text);$doms=$html-find('。J_content ',0)-儿童(1);//echo $ html-find(' # ranged _ tier ',0)-inner text;$ temp=$ doms-明文;$tempArray=explode(',trim($ temp));foreach($ tempArray as $ key=$ value){ if(!空($ value)){ $ TempArr[]=trim($ value);} } unset($ tempArray);//获取排名类型$ pwtype=$ TempArr[8];$ pw total=$ 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。上面的类很简单,但难点在于如何分析查询页面的数据。用萤火虫看。多写点,你就知道了。当然,如果你想查询排名来隐藏分数,可以降一下,但是你得去马的网站上获取数据,所以这里我就不细说了,只是提供一个思路。

版权声明:教你如何用php实现LOL数据远程采集是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。