Tampermonkey油猴脚本案例:添加数据导出Excel功能
油猴(Tampermonkey)是一款流行的浏览器扩展,允许用户在网页中添加自定义脚本以实现特定功能。通过这些脚本,我们可以对网页进行修改、信息抓取等操作。本文将介绍如何创建一个简单的Tampermonkey脚本,功能是从网页上抓取数据并将其导出为Excel文件。示例将采用jQuery进行DOM操作,包含HTML、CSS与JavaScript基本知识。
一、基本环境及安装
首先,我们需要确保已在浏览器中安装了Tampermonkey扩展,可以在Chrome、Firefox、Edge等主流浏览器中找到并安装。安装完成后,您可以创建新脚本。
二、编写脚本
以下是一个简单的Tampermonkey脚本,功能是抓取网页中的表格数据并导出为Excel格式。
// ==UserScript==
// @name 导出Excel脚本
// @namespace http://tampermonkey.net/
// @version 0.1
// @description 将网页表格数据导出为Excel
// @author Your Name
// @match https://example.com/* // 请替换为目标网页的地址
// @grant none
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js
// ==/UserScript==
(function() {
'use strict';
// 添加一个按钮到页面,点击可导出表格
$('body').append('<button id="exportExcel">导出Excel</button>');
// 按钮点击事件
$('#exportExcel').click(function() {
exportTableToExcel('表格数据.xlsx');
});
// 导出函数
function exportTableToExcel(filename) {
let dataType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8';
let tableSelector = 'table'; // 选择需要导出的表格
let table = $(tableSelector);
let array = [];
// 获取表头
let headers = [];
table.find('th').each(function() {
headers.push($(this).text());
});
array.push(headers);
// 获取表格数据
table.find('tr').each(function() {
let row = [];
$(this).find('td').each(function() {
row.push($(this).text());
});
if (row.length > 0) {
array.push(row);
}
});
// 将数据转换为CSV格式
let csvContent = 'data:text/csv;charset=utf-8,';
array.forEach(function(rowArray) {
let row = rowArray.join(',');
csvContent += row + '\r\n';
});
// 创建一个下载链接并模拟点击
let encodedUri = encodeURI(csvContent);
let link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', filename);
document.body.appendChild(link); // Required for FF
link.click(); // This will download the data file
}
})();
三、脚本解析
-
头部信息:脚本的头部信息中包含了脚本的基本信息、应用的网页地址等。
@match
字段中指定了哪些网页可以运行此脚本。 -
按钮添加:通过jQuery,我们将一个按钮添加到网页上,用户点击此按钮后可以触发Excel导出功能。
-
获取数据:我们通过jQuery选择器选择表格,并遍历表格的每一行与单元格,将数据存储到一个二维数组中。
-
CSV转换:将获取的数据转换为CSV格式。CSV(逗号分隔值)是一种常见的表格数据交换格式,可以被Excel直接打开。
-
导出功能:创建一个临时链接,下载生成的CSV文件。
四、总结
以上脚本展示了如何使用Tampermonkey实现简单的数据抓取和导出功能。使用jQuery简化了DOM操作,也便于我们更快速地实现需求。需要注意的是,运行此脚本的网页需要包含表格元素,并且在使用爬虫功能时,要合法合规,尊重网站的隐私政策和数据使用条款。这只是一个学习案例,提供基础思路,实际应用时可根据需求进行扩展与优化。