zoukankan      html  css  js  c++  java
  • 电商 生意参谋 抓取 访客数据 JS版/谷歌插件版

    一、前言


    1、主要功能

    保存淘宝店铺的实时访客数据,自动采集所有访客数据,然后保存为excel下载。

    2、为什么要做这个功能?

    淘宝只能看今天的访客数据,以前的都不能看(免费情况下哈,对于做互联网的我,习惯白嫖了,当然也会相应的分享)

    3、这个功能的作用

    如果简单来看只是保存了访客数据,其实从另一个方面看,你操作的空间还是比较多。

    比如:

    1. 通过抓取每日访客数据,你可以分析出当天流量来源,每个流量渠道的占比。
    2. 通过分析一段时间的访客数据,你可以得出产品的流量占比,地域占比情况等等,关键词优化,直通车关键词投放等等。
    3. 结合店铺的订单,可以看到已转化的访客的来源,以及分析出成交关键字等等
    4. 总结,反正数据是给你了,至于得出什么结论,就看你怎么分析了,如何在业务上的具体分析。
    5. 以后我会把一些分析方法在后面提供,如果你们有好的分析方法,也可以告诉我,联系方式在文章末尾

    4、采集的注意事项

    1. 采集的页面 采集的时候,页面是这个哈(生意参谋-实时访客页面):https://sycm.taobao.com/ipoll/visitor.htm#/

    2. 下载的文件格式 下载的文件看起来是excel,用WPS打开也确实是excel,但本质也不算是真正的excel。不过你可以自己另存为excel格式即可,不影响使用。

    3. 点击下载后,不要进行其它操作哈,等插件自动模拟点击,抓取数据,直到下载excel后就ok了。

    4. 免费下载,该程序所有源码公开。真正做到安全,放心。在后面的章节有源码解释。

    5. 如果你有什么好的意见,可加微信,发给我,我抽空一般会把你们反馈的问题修改好,联系方式在文章末尾有提供。


    5、采集的目标数据预览


    6、采集的的Excel效果预览




    二、安装和使用


    1、谷歌游览器的安装

    官网:https://www.google.cn/chrome/ 在这个页面点击下载安装即可,很多网上的感觉都是别个多少改过一下的,还是安装官网的放心些

    2、插件下载地址

    https://files-cdn.cnblogs.com/files/guxingy/%E8%B0%B7%E6%AD%8C%E6%8F%92%E4%BB%B6-%E7%94%9F%E6%84%8F%E5%8F%82%E8%B0%8B-%E8%AE%BF%E5%AE%A2%E5%AF%BC%E5%87%BA.rar

    3、文本安装流程

    下载后解压,在谷歌游览器的更多工具 -> 扩展程序 -> 加载已解压的扩展程序,选择解压的文件夹(最里面层文件夹哈)即可。 安装好后,游览器右上角会多一个图标。在实时访客页面,先点击一下那个图标,然后再点击一下里面的保存即可,还是比较简单。

    4、图文安装流程

    1. 解压文件,效果如图

    2. 选择扩展程序,路径:在谷歌游览器的`更多工具 → 扩展程序'

    3. 选择'加载已解压的扩展程序'

    4. 选择解压的插件,mark:请选择最里面层文件夹(有png、html、js那层文件夹)

    5. 安装成功后,游览器右上角会出现一个图标,如图

    6. 在生意参谋-实时访客页面,点击插件,保存访客数据

    7. 游览器会自动下载这个excel(里面就是你的访客数据),如图

    8. 打开excel,预览效果


    5、配合python数据合并和处理

    这里只是简单的合并多个访客excel,还有把搜索关键字独立成为一列,还有把时间给补全了(生意参谋里面只有时间,没有日期) 这里并没有数据分析,一般excel里面的数据透视之类的还是可以满足基本需求

    文章地址:https://www.cnblogs.com/guxingy/p/12987355.html

    处理后的excel




    三、源码解析


    1、原文

    https://github.com/smileyby/js-table-excel https://github.com/sxei/chrome-plugin-demo 主要是参考这两篇文章来的


    2、大致功能点介绍

    1. 谷歌插件文件结构,以及每个文件的功能,在上面文章中已经介绍的很细很细了
    2. 把html的table,导出为excel文件

    3、文档结构

    1. manifest.json 用来配置所有和插件相关的配置,必须放在根目录

    2. content-script.js 其实就是Chrome插件中向页面注入脚本的一种形式 核心的逻辑都写在这里了,其实就是一个html数据的抓取,和table的拼接,以及导出excel

    3. popup.html 点击谷歌游览器上的插件图标时,展示的小网页

    4. popup.js 向content-script.js发送消息


    4、核心源码

    其实插件里面就是源码了,没有压缩,没有混淆,直接阅读js即可

    //原文:https://github.com/smileyby/js-table-excel
    //原文:https://github.com/sxei/chrome-plugin-demo
    
    
    var str_tbody = '';
    var add_tbody = function () {
        $("#component-visitor-list div.table-container table.table tbody tr").each(function () {
            str_tbody += '<tr>';
            $(this).find("td").each(function () {
                var td = $(this).text();
                str_tbody += '<td>' + td + '</td>';
            });
            str_tbody += '</tr>';
        });
    };
    
    
    var tableToExcel = (function () {
        var uri = 'data:application/vnd.ms-excel;base64,',
            template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">'
                + '<head><meta http-equiv="Content-type" content="text/html;charset=UTF-8" /><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/>'
                + '</x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body>{table}</body></html>',
            base64 = function (s) {
                return window.btoa(unescape(encodeURIComponent(s)))
            },
            format = function (s, c) {
                return s.replace(/{(w+)}/g, function (m, p) {
                    return c[p];
                })
            };
    
        return function (table_html, name) {
            var ctx = {
                worksheet: name || 'Worksheet',
                table: table_html
            }
            return uri + base64(format(template, ctx));
        }
    })();
    
    
    Date.prototype.Format = function (fmt) {
        var o = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(), //日
            "H+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
    
    
    var download_table = function () {
        var str_thead = $("#component-visitor-list div.table-container table.table thead").html();
        var strTable = '<table><thead>' + str_thead + '<thead><tbody>' + str_tbody + '</tbody></table>';
        var href = tableToExcel(strTable, 'excelName');
    
        str_tbody = '';//数据清空
    
        var curTime = new Date().Format("yyyy-MM-dd HH:mm:ss");;
        var a = document.createElement("a");
        a.href = href;
        a.download = "访客-"+curTime+".xlsx";
        a.click();
    };
    
    
    
    // 接收来自后台的消息
    chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
        console.log('收到来自 ' + (sender.tab ? "content-script(" + sender.tab.url + ")" : "popup或者background") + ' 的消息:', request);
        if (request.cmd == 'update_font_size') {
            var total = parseInt($("a.ui-pagination-next").prev().text());
            var id = setInterval(function () {
                add_tbody();//保存当前页数据
                if ($("a.ui-pagination-next").length <= 0) {
                    console.log('没有下一页了');
                    window.clearInterval(id)
                    download_table();
                    return;
                }
                $("a.ui-pagination-next").get(0).click();//下一页           
            }, 2000);
        }
        else {
            tip(JSON.stringify(request));
            sendResponse('我收到你的消息了:' + JSON.stringify(request));
        }
    });
    
  • 相关阅读:
    Ubuntu中安装gdal python版本
    python中在计算机视觉中的库及基础用法
    Google earth爬取卫星影像数据并进行标注路网的方法
    事务
    文件的下载,随机验证码(无验证)登录注册
    类的加载器和反射
    等待唤醒机制,UDP通信和TCP通信
    线程池,多线程,线程异步,同步和死锁,Lock接口
    多线程, Thread类,Runnable接口
    转换流,缓冲流
  • 原文地址:https://www.cnblogs.com/guxingy/p/13170605.html
Copyright © 2011-2022 走看看