代码拉取完成,页面将自动刷新
// 1.使用,转贴代码到控制台,回车
// 2.页面双击
// 3.复制即可得到数据
document.addEventListener('dblclick', function () {
const notGrabbingIp = ['124.202.212.18','120.244.28.184']; //不抓取的ip配置
let myIpNum = 0; //排除ip数据数量
const obj = [];
const ele = document.getElementsByClassName('table-layout-03')[0];
const list = ele.parentNode.children[0].children[1].children;
// 先打开详情
for (let i = 0; i < list.length; i++) {
const Litem = list[i];
Litem.children[1].children[0].click();
}
// 循环抓取数据
for (let i = 0; i < list.length; i++) {
let newobj = {
userIp: '',
userCook: '',
accessedTime: '',
duration: '',
province: '',
city: '',
accessPageNum: 1,
sourceUrl: '',
inletUrl: '',
deviceInfo: {
system: '', //操作系统
networkServiceProvider: '', //网络服务商
languageEnvironment: '', //语言环境
resolution: '', //屏幕分辨率
screenColor: '', //屏幕颜色
browser: '' //浏览器
}
};
const Litem = list[i];
if (Litem.children.length == 14) {
newobj.userIp = Litem.children[9].children[0].children[0].innerText;
if (!notGrabbingIp.includes(newobj.userIp)) {
newobj.userCook =
Litem.children[10].children[0].children[0].innerText;
newobj.accessedTime = Litem.children[4].children[0].innerText;
// 时间需要转换一下 原始格式 17'51"
let timeLong = Litem.children[11].children[0].innerText;
if (timeLong !== '未知') {
//先删除末尾双引号 17'51
timeLong = timeLong.slice(0, timeLong.length - 1);
// 将但引号替换为:
newTime = timeLong.replace(/'/g, ':');
} else {
newTime = '未知'
}
newobj.duration = newTime; //访问时长
newobj.province = ''; //省市
newobj.city = Litem.children[5].children[0].innerText; //城市
newobj.accessPageNum = parseInt(
Litem.children[12].children[0].innerText
); //访问页数
newobj.sourceUrl =
Litem.children[6].children[0].children[0].innerText; //访问来源
newobj.inletUrl = Litem.children[7].children[0].innerText; //入口页面
// 下面是获取操作系统和浏览器信息
const infoBox = list[i + 1];
const detailsInfoEle =
infoBox.children[1].children[0].children[1].children[0];
// 操作系统数据
const infoTop =
detailsInfoEle.children[0].children[1].children[0].children;
for (let w = 0; w < infoTop.length; w++) {
if (infoTop[w].children[0].innerText === '操作系统:') {
newobj.deviceInfo.system = infoTop[w].getAttribute('title');
} else if (infoTop[w].children[0].innerText === '网络服务商:') {
newobj.deviceInfo.networkServiceProvider =
infoTop[w].getAttribute('title');
} else if (infoTop[w].children[0].innerText === '语言环境:') {
newobj.deviceInfo.languageEnvironment =
infoTop[w].getAttribute('title');
} else if (infoTop[w].children[0].innerText === '屏幕分辨率:') {
newobj.deviceInfo.resolution = infoTop[w].getAttribute('title');
} else if (infoTop[w].children[0].innerText === '屏幕颜色:') {
newobj.deviceInfo.screenColor =
infoTop[w].getAttribute('title');
}
}
// 浏览器信息
const infoBottom =
detailsInfoEle.children[1].children[1].children[0].children[0];
if (infoBottom.children[0].innerText === '浏览器:') {
newobj.deviceInfo.browser = infoBottom.getAttribute('title');
}
obj.push(newobj);
} else {
myIpNum += 1
}
}
}
// 将obj数据转为字符串
const str = JSON.stringify(obj, null, 2);
// 去掉前后中括号
const newstr = str.substring(1).slice(0, -1);
// 去除前后空格,将末尾 } 替换 },
const replaced = newstr.trim().replace(/}$/, '},');
// 最后复制到剪贴板
navigator.clipboard.writeText(replaced);
// 获取数据成功提示
console.log(
'%c %s %c %s',
'border: 1px solid white;border-radius: 5px ;padding: 2px 5px;color: white;background-color: green;',
`抓取 ${obj.length} 有效数据`,
'border: 1px solid white;border-radius: 5px ;padding: 2px 5px;color: white;background-color: #ff8000;border-left: none;',
`排除IP数据 ${myIpNum} 条`
);
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。