购买记录截图生成器, 京东订单p图生成器, 淘宝购买截图生成【python】

简介: 这个代码实现了电商购买记录截图生成器,包含以下功能:模拟京东和淘宝的订单界面

下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:8719

这个代码实现了电商购买记录截图生成器,包含以下功能:

模拟京东和淘宝的订单界面
自动生成随机的订单号、商品信息和价格
支持多种订单状态显示
计算订单总金额
使用前需要安装Pillow和Faker库:
pip install pillow faker

代码使用了面向对象设计,可以轻松扩展支持更多电商平台。生成的截图会保存在output目录下。

import os
from PIL import Image, ImageDraw, ImageFont
import random
import datetime
import textwrap
from faker import Faker

fake = Faker('zh_CN')

class EcommerceScreenshotGenerator:
def init(self):
self.font_path = "simhei.ttf"
self.template_dir = "templates"
self.output_dir = "output"
self._create_dirs()

def _create_dirs(self):
    os.makedirs(self.template_dir, exist_ok=True)
    os.makedirs(self.output_dir, exist_ok=True)

def _load_font(self, size):
    try:
        return ImageFont.truetype(self.font_path, size)
    except:
        return ImageFont.load_default()

def _generate_order_number(self, platform):
    prefix = {
        "jd": "JD",
        "taobao": "TB"
    }.get(platform, "OR")
    return f"{prefix}{datetime.datetime.now().strftime('%Y%m%d')}{random.randint(1000,9999)}"

def _generate_product_info(self, count=1):
    products = []
    for _ in range(count):
        product = {
            "name": fake.text(max_nb_chars=20)[:-1],
            "price": round(random.uniform(50, 9999), 2),
            "quantity": random.randint(1, 5),
            "sku": f"SKU{fake.random_number(digits=8)}",
            "status": random.choice(["待发货", "已发货", "已完成", "已取消"])
        }
        products.append(product)
    return products

def _calculate_total(self, products):
    return sum(p["price"] * p["quantity"] for p in products)

def generate_jd_screenshot(self):
    # 创建空白图片
    img = Image.new('RGB', (750, 1334), color=(255, 255, 255))
    draw = ImageDraw.Draw(img)

    # 设置字体
    title_font = self._load_font(24)
    normal_font = self._load_font(18)
    small_font = self._load_font(14)

    # 生成订单信息
    order_num = self._generate_order_number("jd")
    order_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    products = self._generate_product_info(random.randint(1, 5))
    total = self._calculate_total(products)

    # 绘制京东头部
    draw.rectangle([(0, 0), (750, 120)], fill=(200, 0, 0))
    draw.text((30, 50), "京东", fill=(255, 255, 255), font=title_font)

    # 绘制订单信息
    y_offset = 150
    draw.text((30, y_offset), f"订单编号: {order_num}", fill=(0, 0, 0), font=normal_font)
    y_offset += 40
    draw.text((30, y_offset), f"下单时间: {order_time}", fill=(0, 0, 0), font=normal_font)
    y_offset += 60

    # 绘制商品信息
    for product in products:
        draw.text((30, y_offset), product["name"], fill=(0, 0, 0), font=normal_font)
        y_offset += 30
        draw.text((30, y_offset), f"¥{product['price']} x{product['quantity']}", fill=(150, 150, 150), font=small_font)
        y_offset += 30
        draw.text((30, y_offset), f"状态: {product['status']}", fill=(0, 0, 0), font=small_font)
        y_offset += 40
        draw.line([(20, y_offset), (730, y_offset)], fill=(200, 200, 200), width=1)
        y_offset += 20

    # 绘制总计
    draw.text((30, y_offset), f"实付款: ¥{total}", fill=(200, 0, 0), font=title_font)

    # 保存图片
    output_path = os.path.join(self.output_dir, f"jd_order_{order_num}.png")
    img.save(output_path)
    return output_path

def generate_taobao_screenshot(self):
    # 创建空白图片
    img = Image.new('RGB', (750, 1334), color=(255, 255, 255))
    draw = ImageDraw.Draw(img)

    # 设置字体
    title_font = self._load_font(24)
    normal_font = self._load_font(18)
    small_font = self._load_font(14)

    # 生成订单信息
    order_num = self._generate_order_number("taobao")
    order_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    products = self._generate_product_info(random.randint(1, 5))
    total = self._calculate_total(products)

    # 绘制淘宝头部
    draw.rectangle([(0, 0), (750, 120)], fill=(255, 80, 0))
    draw.text((30, 50), "淘宝", fill=(255, 255, 255), font=title_font)

    # 绘制订单信息
    y_offset = 150
    draw.text((30, y_offset), f"订单号: {order_num}", fill=(0, 0, 0), font=normal_font)
    y_offset += 40
    draw.text((30, y_offset), f"创建时间: {order_time}", fill=(0, 0, 0), font=normal_font)
    y_offset += 60

    # 绘制商品信息
    for product in products:
        draw.text((30, y_offset), product["name"], fill=(0, 0, 0), font=normal_font)
        y_offset += 30
        draw.text((30, y_offset), f"¥{product['price']} x{product['quantity']}", fill=(150, 150, 150), font=small_font)
        y_offset += 30
        draw.text((30, y_offset), f"状态: {product['status']}", fill=(0, 0, 0), font=small_font)
        y_offset += 40
        draw.line([(20, y_offset), (730, y_offset)], fill=(200, 200, 200), width=1)
        y_offset += 20

    # 绘制总计
    draw.text((30, y_offset), f"实付款: ¥{total}", fill=(255, 80, 0), font=title_font)

    # 保存图片
    output_path = os.path.join(self.output_dir, f"taobao_order_{order_num}.png")
    img.save(output_path)
    return output_path

if name == "main":
generator = EcommerceScreenshotGenerator()
jd_path = generator.generate_jd_screenshot()
taobao_path = generator.generate_taobao_screenshot()
print(f"京东订单截图已生成: {jd_path}")
print(f"淘宝订单截图已生成: {taobao_path}")

相关文章
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
5月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
5月前
|
缓存 监控 算法
京东item_search_best 畅销榜接口深度分析及 Python 实现
京东item_search_best接口可实时获取京东各品类畅销商品排名、销量、价格等核心数据,支持多维度榜单分析与品牌竞品监控,助力商家精准选品、制定市场策略,全面把握消费趋势。
|
5月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
5月前
|
缓存 监控 供应链
京东自定义 API 操作深度分析及 Python 实现
京东开放平台提供丰富API接口,支持商品、订单、库存等电商全链路场景。通过自定义API组合调用,可实现店铺管理、数据分析、竞品监控等功能,提升运营效率。本文详解其架构、Python实现与应用策略。
缓存 监控 数据挖掘
101 0
|
5月前
|
Web App开发 监控 开发者
京东 item_review 接口深度分析及 Python 实现
京东item_review接口用于获取商品用户评论数据,涵盖评价内容、评分、晒单、追评等详细信息,适用于口碑分析、需求挖掘、服务评估等场景,是电商运营与产品优化的重要数据来源。
|
5月前
|
缓存 监控 Android开发
京东 item_get_app 接口深度分析及 Python 实现
京东item_get_app接口可获取商品原始详情数据,包含更丰富的字段和细节,适用于电商分析、价格追踪等场景。需通过认证获取权限,支持字段筛选和区域化数据查询。
|
5月前
|
Web App开发 编解码 UED
京东 item_video 接口深度 深度分析及 Python 实现
京东item_video接口用于获取商品相关视频资源,包括主视频、细节视频、场景视频等类型,适用于商品展示、竞品分析和用户体验优化等场景。接口支持视频信息获取及多清晰度播放,是电商内容分析的重要工具。