新版本地址
https://www.cnblogs.com/guxingy/p/14371847.html
https://files-cdn.cnblogs.com/files/guxingy/綜合插件-2021-02-04.rar
一、前言
1、主要功能
保存淘寶店鋪的實時訪客數據,自動采集所有訪客數據,然后保存為excel下載。
2、為什么要做這個功能?
淘寶只能看今天的訪客數據,以前的都不能看(免費情況下哈,對於做互聯網的我,習慣白嫖了,當然也會相應的分享)
3、這個功能的作用
如果簡單來看只是保存了訪客數據,其實從另一個方面看,你操作的空間還是比較多。
比如:
- 通過抓取每日訪客數據,你可以分析出當天流量來源,每個流量渠道的占比。
- 通過分析一段時間的訪客數據,你可以得出產品的流量占比,地域占比情況等等,關鍵詞優化,直通車關鍵詞投放等等。
- 結合店鋪的訂單,可以看到已轉化的訪客的來源,以及分析出成交關鍵字等等
- 總結,反正數據是給你了,至於得出什么結論,就看你怎么分析了,如何在業務上的具體分析。
- 以后我會把一些分析方法在后面提供,如果你們有好的分析方法,也可以告訴我,聯系方式在文章末尾
4、采集的注意事項
-
采集的頁面
采集的時候,頁面是這個哈(生意參謀-實時訪客頁面):https://sycm.taobao.com/ipoll/visitor.htm#/ -
下載的文件格式
下載的文件看起來是excel,用WPS打開也確實是excel,但本質也不算是真正的excel。不過你可以自己另存為excel格式即可,不影響使用。 -
點擊下載后,不要進行其它操作哈,等插件自動模擬點擊,抓取數據,直到下載excel后就ok了。
-
免費下載,該程序所有源碼公開。真正做到安全,放心。在后面的章節有源碼解釋。
-
如果你有什么好的意見,可加微信,發給我,我抽空一般會把你們反饋的問題修改好,聯系方式在文章末尾有提供。
5、采集的目標數據預覽
6、采集的的Excel效果預覽
二、安裝和使用
1、谷歌游覽器的安裝
官網:https://www.google.cn/chrome/
在這個頁面點擊下載安裝即可,很多網上的感覺都是別個多少改過一下的,還是安裝官網的放心些
2、插件下載地址
https://files-cdn.cnblogs.com/files/guxingy/谷歌插件-生意參謀-訪客導出.rar
3、文本安裝流程
下載后解壓,在谷歌游覽器的更多工具 -> 擴展程序 -> 加載已解壓的擴展程序
,選擇解壓的文件夾(最里面層文件夾哈)即可。
安裝好后,游覽器右上角會多一個圖標。在實時訪客頁面,先點擊一下那個圖標,然后再點擊一下里面的保存即可,還是比較簡單。
4、圖文安裝流程
-
解壓文件,效果如圖
-
選擇
擴展程序
,路徑:在谷歌游覽器的`更多工具 -> 擴展程序'
-
選擇'加載已解壓的擴展程序'
-
選擇解壓的插件,mark:請選擇最里面層文件夾(有png、html、js那層文件夾)
-
安裝成功后,游覽器右上角會出現一個圖標,如圖
-
在生意參謀-實時訪客頁面,點擊插件,保存訪客數據
-
游覽器會自動下載這個excel(里面就是你的訪客數據),如圖
-
打開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、大致功能點介紹
- 谷歌插件文件結構,以及每個文件的功能,在上面文章中已經介紹的很細很細了
- 把html的table,導出為excel文件
3、文檔結構
-
manifest.json
用來配置所有和插件相關的配置,必須放在根目錄 -
content-script.js
其實就是Chrome插件中向頁面注入腳本的一種形式
核心的邏輯都寫在這里了,其實就是一個html數據的抓取,和table的拼接,以及導出excel -
popup.html
點擊谷歌游覽器上的插件圖標時,展示的小網頁 -
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));
}
});