import re from playwright.sync_api import Playwright, sync_playwright, expect import time, datetime from get_jd_timestamp import jd_timer def get_firday(): today = datetime.datetime.strptime(datetime.datetime.strftime(datetime.date.today(), '%Y-%m-%d') + ' 20:00:00', '%Y-%m-%d %H:%M:%S') friday = today + datetime.timedelta( days=(4-today.weekday())%7) print(friday) return datetime.datetime.strftime(friday, '%Y-%m-%d %H:%M:%S') # 需要每次定义 target: str = get_firday() # 19920002680 user = {'mobile': '19920002680', 'password': 'Sxzgx1209'} # 18611659484 # user = {'mobile': '18611659484', 'password': 'Rog129Sunx1532'} target_timestamp = int(time.mktime(time.strptime(target, '%Y-%m-%d %H:%M:%S'))*1000) AC_URL = f"https://h5static.m.jd.com/mall/active/xXzWGzxuJ6HRksjXms2x3cQsh25/index.html?utm_term=Wxfriends&utm_user=plusmember&utm_source=iosapp&utm_campaign=t_335139774&utm_medium=appshare&_ts={str(target_timestamp)}&ad_od=share&gxd=RnAowmYKPGXfnp4Sq4B_W578vOMp4E7JgUugKDcomXTOIlSPI-BCnvuytD0G7kc&gx=RnAomDgLPTTeyp5Z_sA9" def run(playwright: Playwright) -> None: browser = playwright.chromium.launch(headless=False) context = browser.new_context() page = context.new_page() page.goto("https://www.jd.com/") page.get_by_role("link", name="你好,请登录").click() page.get_by_placeholder("账号名/手机号/邮箱").click() page.get_by_placeholder("账号名/手机号/邮箱").fill(user['mobile']) # 19920002680 18611659484 page.get_by_placeholder("密码").fill(user['password']) page.get_by_role("link", name="登    录").click() time.sleep(30) if page.get_by_text("切换账号"): # 打开活动页面 print('登录成功!') print(AC_URL) page2 = context.new_page() page2.goto(AC_URL) # 倒计时 jd_timer(target) # 点击领取 page2.click(".coupon_wrapper") target_name = target.replace(':', '-').replace(' ', '_') page2.screenshot(path=f"{target_name}.png") print('点击立即领取!') time.sleep(100) # --------------------- context.close() browser.close() with sync_playwright() as playwright: run(playwright)