Skip to content

Instantly share code, notes, and snippets.

@honghuynhit
Created April 3, 2024 13:24
Show Gist options
  • Save honghuynhit/ffb40350f9d28f1f397a523a7eb911f7 to your computer and use it in GitHub Desktop.
Save honghuynhit/ffb40350f9d28f1f397a523a7eb911f7 to your computer and use it in GitHub Desktop.
Vũ điệu click chuột Shopee
import random
import datetime
def remove_accents(input_str):
import unicodedata
nfkd_form = unicodedata.normalize('NFKD', input_str)
return u"".join([c for c in nfkd_form if not unicodedata.combining(c)])
def replace_space_and_remove_accent(text):
text = remove_accents(text)
text = text.replace(" ", "_")
return text
# Danh sách nguồn click
nguon_click = ["Facebook", "Google Ads", "Instagram"]
# Danh sách nhóm quảng cáo
nhom_quang_cao = {
"Facebook": ["Quảng cáo áo thun", "Quảng cáo giày dép", "Quảng cáo mỹ phẩm"],
"Google Ads": ["Quảng cáo du lịch", "Quảng cáo khóa học", "Quảng cáo đồ điện tử"],
"Instagram": ["Quảng cáo thời trang", "Quảng cáo thực phẩm", "Quảng cáo nội thất"]
}
# Danh sách nội dung quảng cáo
noi_dung_quang_cao = {
"Quảng cáo áo thun": ["Áo thun cotton giá rẻ", "Áo thun polo thanh lịch", "Áo thun in hình độc đáo"],
"Quảng cáo giày dép": ["Giày dép giảm giá 50%", "Giày thể thao mới nhất", "Giày cao gót thời trang"],
"Quảng cáo mỹ phẩm": ["Mỹ phẩm thiên nhiên", "Mỹ phẩm Hàn Quốc", "Mỹ phẩm cao cấp"],
"Quảng cáo du lịch": ["Tour du lịch giá rẻ", "Khám phá các điểm đến mới", "Kỳ nghỉ dưỡng sang trọng"],
"Quảng cáo khóa học": ["Học tiếng Anh online", "Khóa học lập trình", "Khóa học phát triển bản thân"],
"Quảng cáo đồ điện tử": ["Điện thoại thông minh mới nhất", "Laptop giảm giá", "Tivi màn hình lớn"],
"Quảng cáo thời trang": ["Quần áo thời trang nữ", "Quần áo thời trang nam", "Quần áo trẻ em"],
"Quảng cáo thực phẩm": ["Thực phẩm organic", "Đồ ăn vặt ngon miệng", "Bánh kẹo nhập khẩu"],
"Quảng cáo nội thất": ["Bàn ghế sofa", "Giường ngủ đẹp", "Đồ trang trí nhà cửa"]
}
# Danh sách hành động click
hanh_dong_click = ["Xem sản phẩm", "Thêm vào giỏ hàng"]
hanh_dong_click_duoc_chuyen_doi = ["Thanh toán", "Theo dõi shop", "Liên hệ shop"]
# Danh sách sản phẩm
san_pham = ["Áo thun", "Quần jeans", "Giày thể thao", "Điện thoại", "Laptop"]
# Danh sách giá sản phẩm
gia_san_pham = {
"Áo thun": [100000, 200000],
"Quần jeans": [200000, 300000],
"Giày thể thao": [500000, 1000000],
"Điện thoại": [5000000, 10000000],
"Laptop": [10000000, 20000000]
}
# Hàm generate dữ liệu hành động user
def generate_data_user(id_user):
thoi_gian_click = datetime.datetime.now()
nguon_click_random = random.choice(nguon_click)
nhom_quang_cao_random = random.choice(nhom_quang_cao[nguon_click_random])
noi_dung_quang_cao_random = random.choice(noi_dung_quang_cao[nhom_quang_cao_random])
so_luong_click = random.randint(5, 20)
lich_su_click = []
for i in range(so_luong_click):
thoi_gian_click_i = thoi_gian_click - datetime.timedelta(minutes=random.randint(1, 60))
san_pham_random = random.choice(san_pham)
gia_san_pham_random = random.randint(gia_san_pham[san_pham_random][0], gia_san_pham[san_pham_random][1])
url_trang_web = f"https://shopee.vn/{replace_space_and_remove_accent(san_pham_random.lower())}-{gia_san_pham_random}?utm_source={nguon_click_random}&utm_medium={nhom_quang_cao_random}&utm_campaign={noi_dung_quang_cao_random}"
hanh_dong_click_random = random.choice(hanh_dong_click)
if i == (so_luong_click - 1):
hanh_dong_click_random = random.choice(hanh_dong_click_duoc_chuyen_doi)
lich_su_click.append({
"thoi_gian": thoi_gian_click_i.isoformat(),
"url_trang_web": url_trang_web,
"hanh_dong": hanh_dong_click_random
})
co_chuyen_doi = False
loai_chuyen_doi = None
gia_tri_chuyen_doi = None
for click in lich_su_click:
if click["hanh_dong"] == "Thanh toán":
co_chuyen_doi = True
loai_chuyen_doi = "Mua hàng"
gia_tri_chuyen_doi = gia_san_pham_random
break
elif click["hanh_dong"] == "Theo dõi shop":
co_chuyen_doi = True
loai_chuyen_doi = "Theo dõi shop"
gia_tri_chuyen_doi = 0
break
elif click["hanh_dong"] == "Liên hệ shop":
co_chuyen_doi = True
loai_chuyen_doi = "Liên hệ shop"
gia_tri_chuyen_doi = 0
break
if co_chuyen_doi:
chuyen_doi = {
"thoi_gian_chuyen_doi": thoi_gian_click.isoformat(),
"loai_chuyen_doi": loai_chuyen_doi,
"gia_tri_chuyen_doi": gia_tri_chuyen_doi
}
else:
chuyen_doi = None
return {
"id_user": id_user,
"thoi_gian_click": thoi_gian_click.isoformat(),
"nguon_click": nguon_click_random,
"nhom_quang_cao": nhom_quang_cao_random,
"noi_dung_quang_cao": noi_dung_quang_cao_random,
"lich_su_click": lich_su_click,
"chuyen_doi": chuyen_doi
}
# Generate dữ liệu hành động cho 5 user
data = []
for i in range(5):
id_user = f"123456789{i+1}"
data.append(generate_data_user(id_user))
# In dữ liệu JSON
# print(json.dumps(data, indent=4))
print(data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment