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
    }
})();

三、脚本解析

  1. 头部信息:脚本的头部信息中包含了脚本的基本信息、应用的网页地址等。@match字段中指定了哪些网页可以运行此脚本。

  2. 按钮添加:通过jQuery,我们将一个按钮添加到网页上,用户点击此按钮后可以触发Excel导出功能。

  3. 获取数据:我们通过jQuery选择器选择表格,并遍历表格的每一行与单元格,将数据存储到一个二维数组中。

  4. CSV转换:将获取的数据转换为CSV格式。CSV(逗号分隔值)是一种常见的表格数据交换格式,可以被Excel直接打开。

  5. 导出功能:创建一个临时链接,下载生成的CSV文件。

四、总结

以上脚本展示了如何使用Tampermonkey实现简单的数据抓取和导出功能。使用jQuery简化了DOM操作,也便于我们更快速地实现需求。需要注意的是,运行此脚本的网页需要包含表格元素,并且在使用爬虫功能时,要合法合规,尊重网站的隐私政策和数据使用条款。这只是一个学习案例,提供基础思路,实际应用时可根据需求进行扩展与优化。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部