Last active
July 9, 2024 15:19
-
-
Save heypoom/33d3578ceeabb15a3040fd9079564f37 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// First, go to https://shopee.co.th/user/purchase, and open DevTools. | |
// Step 1 - Run this code to scroll all the way to the bottom. | |
const timer = setInterval(() => scrollTo(0, 10000000), 800) | |
setTimeout(() => { | |
// Step 2 - Stop scrolling after 1 minute. | |
clearInterval(timer) | |
// Step 3 - Sum the total purchase price! | |
const total = [...document.querySelectorAll('.purchase-card-buttons__total-price')] | |
.map(n => parseInt(n.innerText.slice(1).replace(/,/g, ''))) | |
.reduce((a, b) => a + b) | |
console.log('Total =', total) | |
}, 60 * 1000) |
My colleague hit time limit and still had more to scroll. So here is auto scrolling without time limit and number of purchases added.
function median(numbers) {
const sorted = numbers.slice().sort((a, b) => a - b);
const middle = Math.floor(sorted.length / 2);
if (sorted.length % 2 === 0) {
return (sorted[middle - 1] + sorted[middle]) / 2;
}
return sorted[middle];
}
// Step 1 - Keep scrolling until scroll position has stopped increasing for 5 intervals
const scrollHistory = [];
const historySize = 5; // Increase this if autoscroll ends too soon
const timer = setInterval(() => {
scrollTo(0, document.body.scrollHeight);
if(scrollHistory.length === historySize && scrollHistory.every(val => val === scrollHistory[0])) {
clearInterval(timer);
// Step 2 - Sum the total purchase price!
const priceList = [...document.querySelectorAll('.purchase-card-buttons__total-price')]
.map(n => parseInt(n.innerText.slice(1).replace(/,/g, '')));
const total = priceList.reduce((a, b) => a + b);
const mean = total / priceList.length;
console.log("Total =", total);
console.log("Mean =", mean);
console.log("Median =", median(priceList))
console.log("Max =", Math.max(...priceList));
console.log("Min =", Math.min(...priceList));
console.log("Number of purchases =", priceList.length);
} else {
if(scrollHistory.length === historySize) scrollHistory.shift();
scrollHistory.push(window.scrollY)
console.log('Looking through your orders, please do not touch anything and wait...');
}
}, 800)
Right now the element's classname is changed to "isoXOF"
function median(numbers) {
const sorted = numbers.slice().sort((a, b) => a - b);
const middle = Math.floor(sorted.length / 2);
if (sorted.length % 2 === 0) {
return (sorted[middle - 1] + sorted[middle]) / 2;
}
return sorted[middle];
}
// Step 1 - Keep scrolling until scroll position has stopped increasing for 5 intervals
const scrollHistory = [];
const historySize = 5; // Increase this if autoscroll ends too soon
const timer = setInterval(() => {
scrollTo(0, document.body.scrollHeight);
if(scrollHistory.length === historySize && scrollHistory.every(val => val === scrollHistory[0])) {
clearInterval(timer);
// Step 2 - Sum the total purchase price!
const priceList = [...document.querySelectorAll('.isoXOF')]
.map(n => parseInt(n.innerText.slice(1).replace(/,/g, '')));
const total = priceList.reduce((a, b) => a + b);
const mean = total / priceList.length;
console.log("Total =", total);
console.log("Mean =", mean);
console.log("Median =", median(priceList))
console.log("Max =", Math.max(...priceList));
console.log("Min =", Math.min(...priceList));
console.log("Number of purchases =", priceList.length);
} else {
if(scrollHistory.length === historySize) scrollHistory.shift();
scrollHistory.push(window.scrollY)
console.log('Looking through your orders, please do not touch anything and wait...');
}
}, 800)
กลับมาดู script shopee ควรทำ BI analytics การซื้อของแต่ละคน 😂
ไม่ทราบว่าตอนนี้ element's classname ถูกเปลี่ยนอีกแล้วหรอครับ ใช้โค้ดข้างบนแล้วรันไม่ได้
@PackChinoros ใช่ครับ ตอนนี้เปลี่ยนจาก ".isoXOF" เป็น "._1MS3t2" ได้เลยครับ
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add more statistic calculation
mean, median, max, min