图书馆数据仓库

目录

1.数据仓库的数据来源为业务数据库(mysql)

       初始化脚本

   init_book_result.sql

2.通过sqoop将mysql中的业务数据导入到大数据平台(hive)

 导入mysql数据到hive中

3.通过hive进行数据计算和数据分析 形成数据报表

4.再通过sqoop将数据报表导出到mysql 

5.使用FineReport制作数据报表


1.数据仓库的数据来源为业务数据库(mysql)

        包含 图书表 t_book_info,

                借书表 t_borrow_info,  

                用户表 t_user_info  38条数据

                图书类别表 dim_books_type 5条

       初始化脚本

        init_mysql.sql

        

-- 设置sql_mode
set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';-- 创建数据库library
create database library;-- 切换数据库
use library;-- 创建用户信息表
CREATE TABLE t_user_info(user_id        varchar(100) not null,user_name      varchar(100) not null,sex            varchar(10)  not null,age            int not null
)DEFAULT CHARSET='utf8';-- 创建图书表
CREATE TABLE t_book_info(book_id        varchar(100) not null,book_name 	   varchar(100) not null,type_id        varchar(100) not null
)DEFAULT CHARSET='utf8';-- 创建图书类别表
CREATE TABLE dim_books_type(type_id    varchar(100) not null,type_name  varchar(100) not null
)DEFAULT CHARSET='utf8';-- 创建借书表
CREATE TABLE t_borrow_order(user_id        varchar(100) not null,book_id   varchar(100) not null,create_time    varchar(100) not null
)DEFAULT CHARSET='utf8';-- 用户信息表插入数据
insert into t_user_info values ('114', '王小名', '男', 22);
insert into t_user_info values ('115', '张美丽', '女', 27);
insert into t_user_info values ('116', '李华', '男', 30);
insert into t_user_info values ('117', '陈晓红', '女', 35);
insert into t_user_info values ('118', '赵伟', '男', 24);
insert into t_user_info values ('119', '周小燕', '女', 29);
insert into t_user_info values ('120', '吴强', '男', 33);
insert into t_user_info values ('121', '郑丽', '女', 26);
insert into t_user_info values ('122', '王刚', '男', 28);
insert into t_user_info values ('123', '黄芳', '女', 31);
insert into t_user_info values ('124', '刘涛', '男', 36);
insert into t_user_info values ('125', '杨静', '女', 25);
insert into t_user_info values ('126', '张杰', '男', 32);
insert into t_user_info values ('127', '陈莉', '女', 23);
insert into t_user_info values ('128', '赵勇', '男', 38);
insert into t_user_info values ('129', '周敏', '女', 30);
insert into t_user_info values ('130', '吴浩', '男', 29);
insert into t_user_info values ('131', '郑薇', '女', 34);
insert into t_user_info values ('132', '王林', '男', 27);
insert into t_user_info values ('133', '黄梅', '女', 26);
insert into t_user_info values ('134', '刘军', '男', 37);
insert into t_user_info values ('135', '杨慧', '女', 25);
insert into t_user_info values ('136', '张明', '男', 33);
insert into t_user_info values ('137', '陈霞', '女', 31);
insert into t_user_info values ('138', '赵海', '男', 28);
insert into t_user_info values ('139', '周兰', '女', 36);
insert into t_user_info values ('140', '吴飞', '男', 24);
insert into t_user_info values ('141', '郑敏', '女', 27);
insert into t_user_info values ('142', '王磊', '男', 35);
insert into t_user_info values ('143', '黄蓉', '女', 30);
insert into t_user_info values ('144', '刘丽', '女', 26);
insert into t_user_info values ('145', '杨勇', '男', 32);
insert into t_user_info values ('146', '张华', '男', 29);
insert into t_user_info values ('147', '陈敏', '女', 34);
insert into t_user_info values ('148', '赵丽', '女', 31);
insert into t_user_info values ('149', '周刚', '男', 25);
insert into t_user_info values ('150', '吴丽', '女', 37);
insert into t_user_info values ('151', '郑强', '男', 28);
insert into t_user_info values ('152', '王芳', '女', 33);
insert into t_user_info values ('153', '黄伟', '男', 27);
insert into t_user_info values ('154', '刘静', '女', 36);
insert into t_user_info values ('155', '杨华', '男', 24);
insert into t_user_info values ('156', '张敏', '女', 31);
insert into t_user_info values ('157', '陈军', '男', 30);
insert into t_user_info values ('158', '赵敏', '女', 26);
insert into t_user_info values ('159', '周强', '男', 35);
insert into t_user_info values ('160', '吴红', '女', 32);
insert into t_user_info values ('161', '郑丽', '女', 29);
insert into t_user_info values ('162', '王伟', '男', 34);
insert into t_user_info values ('163', '黄静', '女', 31);
insert into t_user_info values ('164', '刘涛', '男', 25);
insert into t_user_info values ('165', '杨敏', '女', 37);
insert into t_user_info values ('166', '张勇', '男', 28);
insert into t_user_info values ('167', '陈芳', '女', 33);
insert into t_user_info values ('168', '赵军', '男', 27);
insert into t_user_info values ('169', '周丽', '女', 36);
insert into t_user_info values ('170', '吴华', '男', 24);commit;-- 图书表插入数据
-- Book Type: 散文随笔 (a)
insert into t_book_info values ('a001', '珠江潮汐美', 'a');
insert into t_book_info values ('a002', '晨曦的低语', 'a');
insert into t_book_info values ('a003', '山间小路', 'a');
insert into t_book_info values ('a004', '秋叶之歌', 'a');
insert into t_book_info values ('a005', '夜色中的琴声', 'a');
insert into t_book_info values ('a006', '城市边缘的诗人', 'a');
insert into t_book_info values ('a007', '冬日里的暖阳', 'a');
insert into t_book_info values ('a008', '海边的沉思', 'a');
-- book type: 世界名著 (b)
insert into t_book_info values ('b001', '悲惨世界', 'b');
insert into t_book_info values ('b002', '百年孤独', 'b');
insert into t_book_info values ('b003', '双城记', 'b');
insert into t_book_info values ('b004', '战争与和平', 'b');
insert into t_book_info values ('b005', '简爱', 'b');
insert into t_book_info values ('b006', '飘', 'b');
insert into t_book_info values ('b007', '堂吉诃德', 'b');
insert into t_book_info values ('b008', '呼啸山庄', 'b');
-- book type: 少儿童书 (c)
insert into t_book_info values ('c001', '小王子的星球', 'c');
insert into t_book_info values ('c002', '魔法森林的秘密', 'c');
insert into t_book_info values ('c003', '海底两万里', 'c');
insert into t_book_info values ('c004', '勇敢的小火车头', 'c');
insert into t_book_info values ('c005', '神奇的种子', 'c');
insert into t_book_info values ('c006', '月亮上的兔子', 'c');
insert into t_book_info values ('c007', '彩虹桥下的秘密', 'c');
insert into t_book_info values ('c008', '会说话的石头', 'c');
-- book type: 历史小说 (d)
insert into t_book_info values ('d001', '三国演义', 'd');
insert into t_book_info values ('d002', '水浒传', 'd');
insert into t_book_info values ('d003', '大明王朝', 'd');
insert into t_book_info values ('d004', '清朝末年', 'd');
insert into t_book_info values ('d005', '大唐盛世', 'd');
insert into t_book_info values ('d006', '宋朝风云', 'd');
insert into t_book_info values ('d007', '明朝那些事儿', 'd');
insert into t_book_info values ('d008', '清朝宫廷秘史', 'd');
-- book type: 国学入门 (e)
insert into t_book_info values ('e001', '论语解读', 'e');
insert into t_book_info values ('e002', '道德经注释', 'e');
insert into t_book_info values ('e003', '易经初探', 'e');
insert into t_book_info values ('e004', '诗经选读', 'e');
insert into t_book_info values ('e005', '孟子精讲', 'e');
insert into t_book_info values ('e006', '庄子心解', 'e');
insert into t_book_info values ('e007', '大学中庸', 'e');
insert into t_book_info values ('e008', '孝经新解', 'e');commit;-- 图书类别表插入数据
insert into dim_books_type values('a','散文随笔');
insert into dim_books_type values('b','世界名著');
insert into dim_books_type values('c','少儿童书');
insert into dim_books_type values('d','历史小说');
insert into dim_books_type values('e','国学入门');commit;-- 借书表插入数据
insert into t_borrow_order values('114','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('115','e002','2022-11-08 09:23:54');
insert into t_borrow_order values('114','b003','2022-11-08 09:23:54');
insert into t_borrow_order values('116','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('114','c001','2022-11-08 09:23:54');
insert into t_borrow_order values('115','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('117','b004','2022-11-08 09:23:54');
insert into t_borrow_order values('118','a007','2022-11-08 09:23:54');
insert into t_borrow_order values('118','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('119','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('119','d001','2022-11-08 09:23:54');
insert into t_borrow_order values('120','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('120','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('121','d005','2022-11-08 09:23:54');
insert into t_borrow_order values('123','b006','2022-11-08 09:23:54');
insert into t_borrow_order values('124','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('125','e004','2022-11-08 09:23:54');
insert into t_borrow_order values('126','b002','2022-11-08 09:23:54');
insert into t_borrow_order values('127','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('124','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('122','b001','2022-11-08 09:23:54');
insert into t_borrow_order values('128','a001','2022-11-08 09:23:54');
insert into t_borrow_order values('129','a006','2022-11-08 09:23:54');
insert into t_borrow_order values('125','d008','2022-11-08 09:23:54');
insert into t_borrow_order values('123','e008','2022-11-08 09:23:54');
insert into t_borrow_order values('120','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('130','b007','2022-11-08 09:23:54');
insert into t_borrow_order values('131','a007','2022-11-08 09:23:54');
insert into t_borrow_order values('132','a008','2022-11-08 09:23:54');
insert into t_borrow_order values('133','e004','2022-11-08 09:23:54');
insert into t_borrow_order values('135','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('133','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('136','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('138','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('139','d001','2022-11-08 09:23:54');
insert into t_borrow_order values('133','e001','2022-11-08 09:23:54');
insert into t_borrow_order values('133','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('132','e002','2022-11-08 09:23:54');
insert into t_borrow_order values('131','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('141','b003','2022-11-08 09:23:54');
insert into t_borrow_order values('140','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('142','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('142','d005','2022-11-08 09:23:54');
insert into t_borrow_order values('146','b006','2022-11-08 09:23:54');
insert into t_borrow_order values('144','d006','2022-11-08 09:23:54');
insert into t_borrow_order values('148','d007','2022-11-08 09:23:54');
insert into t_borrow_order values('144','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('142','a003','2022-11-08 09:23:54');
insert into t_borrow_order values('143','e003','2022-11-08 09:23:54');
insert into t_borrow_order values('149','d004','2022-11-08 09:23:54');
insert into t_borrow_order values('150','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('151','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('151','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('154','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('153','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('156','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('155','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('157','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('158','d005','2022-11-08 09:23:54');
insert into t_borrow_order values('159','a005','2022-11-08 09:23:54');
insert into t_borrow_order values('154','c006','2022-11-08 09:23:54');
insert into t_borrow_order values('153','d007','2022-11-08 09:23:54');
insert into t_borrow_order values('152','c004','2022-11-08 09:23:54');
insert into t_borrow_order values('154','a004','2022-11-08 09:23:54');
insert into t_borrow_order values('151','d003','2022-11-08 09:23:54');
insert into t_borrow_order values('152','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('162','c003','2022-11-08 09:23:54');
insert into t_borrow_order values('161','a001','2022-11-08 09:23:54');
insert into t_borrow_order values('166','d002','2022-11-08 09:23:54');
insert into t_borrow_order values('163','a002','2022-11-08 09:23:54');
insert into t_borrow_order values('167','c003','2022-11-08 09:23:54');
insert into t_borrow_order values('169','a005','2022-11-08 09:23:54');
commit;

   init_book_result.sql

-- 设置sql_mode
set sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';-- 创建数据库result,并进行切换
create database book_result;use book_result;-- 创建图书类别浏览量表
CREATE TABLE t_books_type_borrow_count(type_name        varchar(100) not null,borrow_count        int not null
)DEFAULT CHARSET='utf8';

2.通过sqoop将mysql中的业务数据导入到大数据平台(hive)

在hive中建立映射的数据库

init_hive.sql

create database library;
use library;-- 创建用户信息表create table t_user_info (user_id STRING    comment "用户id",   user_name STRING  comment "用户姓名", sex STRING        comment "用户姓名",       age INT           comment "用户性别"
) 
comment "用户信息表"
row format delimited fields terminated by ','
stored as textfile;-- 创建图书表create table t_book_info (book_id STRING    comment "图书id",   book_name STRING  comment "书名", type_id STRING    comment "类别id"
) 
comment "图书表"
row format delimited fields terminated by ','
stored as textfile;-- 创建图书类别表create table dim_books_type (type_id STRING    comment "类别id",   type_name STRING  comment "类别名"
) 
comment "图书类别表"
row format delimited fields terminated by ','
stored as textfile;-- 创建借书表create table t_borrow_order (user_id STRING     comment "用户id",    book_id STRING     comment "图书id",    create_time STRING comment "创建时间"
) 
comment "借书表"
row format delimited fields terminated by ','
stored as textfile;

source /opt/sql/library/init_hive.sql;

 导入mysql数据到hive中

此次mysql与hive中的表名都相同

sqoop import \

                                     虚拟机      端口号 mysql中的数据库名

--connect jdbc:mysql://bigdata004:3306/mall \  

--username root \

--password root123 \

           mysql中的表名

--table t_user_info \

--num-mappers 1 \

--hive-import \

--fields-terminated-by "," \

--hive-overwrite \

导入dim_books_type


sqoop import \
--connect jdbc:mysql://bigdata004:3306/library \
--username root \
--password root123 \
--table dim_books_type \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table library.dim_books_type

3.通过hive进行数据计算和数据分析 形成数据报表


--切换数据库
use library;--创建图书类别借阅表
--从借书表中获取图书id 
--从图书表中获取图书id的类别id
--从类别表中获取类别名
--表中显示 类名 和 该类名的总数()create table if not exists library.dws_borrow_books_type_count
asselect t3.type_name,count(t2.type_id) as borrow_count from (select book_id from t_borrow_order) t1inner join t_book_info t2 on t1.book_id=t2.book_idinner join dim_books_type t3 on t2.type_id=t3.type_idgroup by t3.type_name;

4.再通过sqoop将数据报表导出到mysql 

-- sqoop导出数据到mysql

sqoop export \

                                   主机名                 数据库
--connect jdbc:mysql://bigdata004:3306/result \
--username root \
--password root123 \

                    mysql上的表名
--table  t_city_sale_total \
--num-mappers 1 \

                    hdfs上的数据库位置
--export-dir /user/hive/warehouse/mall_bigdata.db/dws_sale_order_city_total \
--input-fields-terminated-by  "\001"

-- sqoop导出数据到mysqlsqoop export \
--connect jdbc:mysql://bigdata004:3306/book_result \
--username root \
--password root123 \
--table t_books_type_borrow_count \
--num-mappers 1 \
--export-dir /user/hive/warehouse/library.db/dws_borrow_books_type_count \
--input-fields-terminated-by "\001"

5.使用FineReport制作数据报表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/40522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【matlab】智能优化算法——求解目标函数

智能优化算法在求解目标函数方面发挥着重要作用,它通过迭代、筛选等方法来寻找目标函数的最优值(极值)。以下是关于智能优化算法求解目标函数的详细介绍: 一、智能优化算法概述 智能优化算法是一种搜索算法,旨在通过…

设置单实例Apache HTTP服务器

配置仓库 [rootlocalhost ~]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vi rpm.repo仓库代码: [BaseOS] nameBaseOS baseurl/mnt/BaseOS enabled1 gpgcheck0[AppStream] nameAppStream baseurl/mnt/AppStream enabled1 gpgcheck0挂载 [rootlocalhost …

2.4G无线收发芯片 XL2401D,SOP16封装,集成单片机,高性价比

XL2401D 芯片是工作在2.400~2.483GHz世界通用ISM频段,片内集成了九齐 NY8A054E单片机的SOC无线收发芯片。芯片集成射频收发机、频率收生器、晶体振荡器、调制解调器等功能模块,并且支持一对多组网和带ACK的通信模式。发射输出功率、工作频道以及通信数据…

网络基础:IS-IS协议

IS-IS(Intermediate System to Intermediate System)是一种链路状态路由协议,最初由 ISO(International Organization for Standardization)为 CLNS(Connectionless Network Service)网络设计。…

油猴脚本高级应用:拦截与修改网页Fetch请求实战指南

油猴脚本高级应用:拦截与修改网页Fetch请求实战指南 简介: 本文介绍了几个使用油猴(Tampermonkey)脚本拦截和修改网页 fetch 请求的案例。这些脚本可以在浏览器扩展油猴中运行,用于开发者调试网络请求或自定义页面行…

Vue 前端修改页面标题无需重新打包即可生效

在public文件夹下创建config.js文件 index.html页面修改 其他页面的标题都可以用window.title来引用就可以了!

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【19】认证服务03—分布式下Session共享问题

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【19】分布式下Session共享问题 session原理分布式下session共享问题Session共享问题解决—session复制Session共享问题解决—客户端存储Session共享问题解决—hash一致性Session共享问题…

ASUS/华硕飞行堡垒8 FX506L FX706L系列 原厂win10系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 ,安装结束后带隐藏分区,一键恢复,以及机器所有驱动软件。 系统版本:Windows10 原厂系统下载网址:http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意:仅支持以上型号专用…

域名、网页、HTTP概述

目录 域名 概念 域名空间结构 域名注册 网页 概念 网站 主页 域名 HTTP URL URN URI HTML 超链接 发布 HTML HTML的结构 静态网页 特点 动态网页 特点 Web HTTP HTTP方法 GET方法 POST方法 HTTP状态码 生产环境下常见的HTTP状态码 域名 概念 IP地…

基于.NET开源游戏框架MonoGame实现的开源项目合集

前言 今天分享一些基于.NET开源游戏框架MonoGame实现的开源项目合集。 MonoGame项目介绍 MonoGame是一个简单而强大的.NET框架,使用C#编程语言可以创建桌面PC、视频游戏机和移动设备游戏。它已成功用于创建《怒之铁拳4》、《食肉者》、《超凡蜘蛛侠》、《星露谷物…

【跟我学K8S】45天入门到熟练详细学习计划

目录 一、什么是K8S 核心功能 架构组件 使用场景 二、入门到熟练的学习计划 第一周:K8s基础和概念 第二周:核心对象和网络 第三周:进阶使用和管理 第四周:CI/CD集成和监控 第五周:实战模拟和案例分析 第六周…

XPointer 实例

XPointer 实例 1. 引言 XPointer 是一种用于定位 XML 文档中特定部分的语言。它是 XLink 的补充,允许用户在 XML 文档中创建链接,指向文档中的特定元素、属性或文本。XPointer 的强大之处在于其精确的定位能力,使得开发者能够创建更加丰富和动态的 XML 应用。 2. XPointe…

【Spring Boot】spring boot主启动类_内置服务

1、主启动类 1.1 定义与功能 Spring Boot的主启动类是一个特殊的Java类,用于启动Spring Boot应用程序。该类通常使用SpringBootApplication注解进行标注,这个注解是一个复合注解,包含SpringBootConfiguration、EnableAutoConfiguration和Co…

LRU Cache 双向链表以及STL list实现----面试常考

双向链表版本&#xff1a; #include <bits/stdc.h> using namespace std; struct Node{int key, value;Node* prev;Node* next;Node():key(0), value(0), prev(nullptr), next(nullptr){}Node(int k, int v):key(k), value(v), prev(nullptr), next(nullptr){} }; class…

【IT领域新生必看】Java中的对象创建魔法:小白也能掌握的五种方法

文章目录 引言为什么需要创建对象&#xff1f;创建对象的五种常见方式1. 使用 new 关键字示例&#xff1a; 2. 使用反射示例&#xff1a; 3. 使用克隆示例&#xff1a; 4. 使用序列化和反序列化示例&#xff1a; 5. 使用工厂方法示例&#xff1a; 选择合适的对象创建方式总结 引…

Spring容器Bean之XML配置方式

一、首先看applicationContext.xml里的配置项bean 我们采用xml配置文件的方式对bean进行声明和管理&#xff0c;每一个bean标签都代表着需要被创建的对象并通过property标签可以为该类注入其他依赖对象&#xff0c;通过这种方式Spring容器就可以成功知道我们需要创建那些bean实…

IPython代码块粘贴秘籍:效率与技巧的完美结合

标题&#xff1a;IPython代码块粘贴秘籍&#xff1a;效率与技巧的完美结合 在数据科学和Python编程的日常实践中&#xff0c;经常需要在IPython环境中快速有效地粘贴代码块。这个过程虽小&#xff0c;却对提升工作效率至关重要。本文将详细介绍如何在IPython中粘贴代码块&…

comsol随机材料参数赋值

comsol随机材料参数赋值 在comsol中定义外部matlab函数 在comsol中定义外部matlab函数 首选项&#xff0c;安全性&#xff0c;允许 材料中&#xff0c;将杨氏模量更改为变量函数 计算 应力有波动&#xff0c;可见赋值成功 也可以看到赋值的材料参数&#xff1a;

植物大战僵尸杂交版V2.1+修改器+融合版

植物大战僵尸杂交版v2.1 新增新植物&#xff0c;全新模式与玩法&#xff01; 内含窗口放大工具与修改器 主播同款游戏&#xff0c;下载使用即可&#xff01; 链接: https://pan.baidu.com/s/1znjbqgBSdqTJWZLBOhe5hA?pwdj6ra 提取码: j6ra

vulnhub--IMF

环境 攻击机&#xff1a;192.168.96.4 靶机&#xff1a;ip未知 主机探测 确定靶机ip为32的主机 端口扫描 访问80端口 外围打点 在contact.php页面源码中找到了flag1 之后没啥突破 但查看网络后发现contact.php页面请求的三个js文件的文件名很有特点&#xff0c;猜测是base64编码…