Created
April 3, 2024 13:24
-
-
Save honghuynhit/ffb40350f9d28f1f397a523a7eb911f7 to your computer and use it in GitHub Desktop.
Vũ điệu click chuột Shopee
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
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