前端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

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的