前端ajax获取最近kpl和lpl的比赛赛程并本地导出csv格式文件

本文主要是介绍前端ajax获取最近kpl和lpl的比赛赛程并本地导出csv格式文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前端ajax获取最近kpl和lpl的比赛赛程并本地导出csv格式文件

  • 前言
    • 使用的简单js函数体
      • 1、data_to_csv
      • 2、加载jquery
    • 下载kpl赛程
    • 下载lpl赛程
    • 使用方法:
    • 运行结果

前言

在浏览器的console面板中,通过ajax,将lpl和kpl的赛程信息搞出来。
涉及到的api接口:
kpl的是:
https://tga-openapi.tga.qq.com/web/tgabank/getSchedules?seasonid=KPL2023S2&is_people=1
lpl的是:
https://apps.game.qq.com/lol/match/apis/searchBMatchInfo_bak.php?..

使用的简单js函数体

1、data_to_csv

// 导出data数据,为csv文件。表现为:下载csv文件
function data_to_csv(data, name) {const blob = new Blob(data, {type: 'text/csv,charset=UTF-8'});const uri = URL.createObjectURL(blob);let downloadLink = document.createElement('a');downloadLink.href = uri;downloadLink.download = (name+".csv")||"temp.csv";document.body.appendChild(downloadLink);downloadLink.click();document.body.removeChild(downloadLink);
}

2、加载jquery

// 简单加载个js库,比如:加载jquery
function js_load(url){var js = top.document.createElement('script');js.type = 'text/javascript';js.src = url;top.document.head.append(js);
}
js_load('https://libs.baidu.com/jquery/1.8.3/jquery.min.js');

下载kpl赛程

// 为了方便调用,搞成一个简单的函数
function down_kpl() {var durl = 'https://tga-openapi.tga.qq.com/web/tgabank/getSchedules?seasonid=KPL2023S2&is_people=1';jQuery.ajax({url: durl,dataType: 'json',success: function(res){console.log('ok', res);var dx = res.data;var items = [];items.push(["赛季", "比赛名", "比赛分组", "比赛时间", "主队分组", "主场队伍1",  "客场队伍2", "客队分组", '\n'])for(var i=0; i<dx.length; i++){var item = dx[i];items.push([item['season'], item['stage_name'], item['match_group'], item['match_time'], item['host_group'], item['hname_zh_CN'],  item['gname_zh_CN'], item['guest_group'], '\n'])}if (items && items.length>1) {data_to_csv(items, "kpl-赛程");}},complete: function(res){//console.log('err', res);}})
}

下载lpl赛程

// 为了方便调用,搞成一个简单的函数
var downlpl_nday = 15;  // 下载从今天算起,最近15天的赛程
function down_lpl(){var tnow = new Date();var durl_start=tnow.toLocaleDateString('zh', {hour12: false}).replaceAll("/", "-");var tend = new Date(tnow.getTime()+1000*3600*24*downlpl_nday)var durl_end=tend.toLocaleDateString('zh', {hour12: false}).replaceAll("/", "-");var durl = 'https://apps.game.qq.com/lol/match/apis/searchBMatchInfo_bak.php?p8=5&p1=190&p4=&p2=&p9='+ durl_start + '%2000%3A00%3A00&p10=' + durl_end +  '%2023%3A59%3A59&p6=3&p11=&p12=&page=1&pagesize=9999&r1=retObj_lpl&_=1687082345131';js_load(durl);setTimeout(function(){var ddd = retObj_lpl.msg.result;var items = [];items.push(["赛季", "比赛名", "比赛时间", "比赛周", "\n"]);for(var i=0; i<ddd.length; i++){var item = ddd[i];items.push([item['GameName'], item['bMatchName'], item['MatchDate'], item['GameProcName'],  '\n'])}if (items && items.length>1) {data_to_csv(items, "lpl-赛程");}}, 1000);
}

使用方法:

因为涉及到ajax跨域,所以:
方法1:
只可以在同域名的 相关网址对应的console面板中复制执行
比如:下载kpl的话,就用这个
https://pvp.qq.com/match/kpl/kingproleague/index.html
下载lpl的话,就用这个
https://lpl.qq.com/web202301/schedule.html
方法2:
在edge浏览器的插件市场上找个允许跨域执行的插件,比如:
https://microsoftedge.microsoft.com/addons/detail/allow-cors-accesscontro/bhjepjpgngghppolkjdhckmnfphffdag

鼠标点击右上角插件,将那个 C: 点亮。就可以在任何未设置 header 内容安全策略(content-security-policy)的网站执行了。
在这里插入图片描述

运行结果

就是下面这个样子的:
在这里插入图片描述

这篇关于前端ajax获取最近kpl和lpl的比赛赛程并本地导出csv格式文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/414556

相关文章

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

React 记忆缓存的三种方法实现

《React记忆缓存的三种方法实现》本文主要介绍了React记忆缓存的三种方法实现,包含React.memo、useMemo、useCallback,用于避免不必要的组件重渲染和计算,感兴趣的可以... 目录1. React.memo2. useMemo3. useCallback使用场景与注意事项在 Re

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H