使用 Python 脚本自动获取美团外卖优惠券
import requests import concurrent.futures
设置请求的 URL 和请求体
url = 'https://promotion.waimai.meituan.com/lottery/limitcouponcomponent/fetchcoupon?couponReferId=5865AE2DF47846FC8C2B85078C075051&actualLng=114.67705535888672&actualLat=33.660030364990234&geoType=2&gdPageId=366584&pageId=366094&version=1&utmSource=&utmCampaign=&instanceId=16826680749590.4594850395550041&componentId=16826680749590.4594850395550041' data = '{"cType":"wm_wxapp","fpPlatform":13,"wxOpenId":"","appVersion":"","mtFingerprint":"H5dfp_1.8.2_tttt_vbqoX/tapusBr3zuuHs+s+TzucY0nkwmcFo4ZMdZOHeh/Ef2G1O5XXneFks+e9/Nghw1aG3EvaqZi7WwpRVJPi/MDk4vkffHAKLqjfI577drhdqU1CYDJZi+RzWrhh369hJC90jy465wMbfAa4aScXK9yj+JmFh6Bu/bh1jo2oQzPv4NLnETKveOi4j623aZvbUXU6wRo4U/v0CIo0WdI8Ek73X4aLegHH2pkIYY9CtdeF1DSJ6kk/ksxoH1JWJiqv5mWhNTTNeVjY/dW4ElzSUhXP/7mJrrg3VY1vtiU7zHEYxMt8N5WqysvstKt6cd1ULSb+ewOVZv2/0B9tasHCUufkFP3leckI/93bXS+3hJIjo5ZEVKnosgWp+scy7jm2/9HQon94zq7Vctm+QY+k/6tqLhQvi/ldxTE11OXqjeJ7PD/0CLNMOs9gXlyecuFcXABa4U48i6GSj7PepOFLPF4suVvazzwHRvhqTIyuZD6FiA0nb9oTECM4t3vtM5Usal1bbcUoxCULsfmszI4xmpk9AsjsO5iSLwdcjOWGG0AyPeBTs3XyfA5bLPmtejk3hecmOOCqbnar3/EpRJ1k0FxGuZnlhbZQkk/n8V8IGVPFShEPu6NKa/lkheyVkHjImlr7qUshQwpAdKjl5o2+8gv7mupz35k9nNNNUlXBW7bv1vmP9CPZyq7kkcHvR1XgJTF+cYXInLeDtMIcslAnfgEI6cfwJlhWbkg97BccRLumODngsGYAxJKnq301UC5tBCHt/7MwYNaaZG6KpBmf8dxOTWJ/x7u/qcgpjdMf5jEZk1mNw3J4w5rzVen5XlhPWt/NVhcbxn6efks3hVVSpzCgN0q0UnaLishgzspnoGTyJQIftUUuHjlpKqSkH49U93J2JFAKhyBT118jlUeI5vnPG3KSNhxQOuIF7DXzMiV3rBhOwTdtJH+G7K7/gcb3RUxWSMz8vDbLxLRBh0DGMNhPtOTWpnrfOBTVZRdRZ83AWVya0XOc21FrYrOfijh4sHA3S6Jwxlrx2vFrocx5dEpOmDJjEWcppNP5ypWDIOrRrqQugmAN1VEml2J8QGhdy7lkjKoFLZdby0HBSyinYneXjbkvMJM/V5yOZC/t2a5cHuxJ9lbBnKyu79P5mb6YuIYUuKvwVaWbucAActxyHBT/iXH4rdkROFCP9eHghT3N0x3/kCKvVRjDzucrVlz9zK+2Y0gYXSi/aimaRb7FBJBpYLCesMMg5VgGAnPDiH0y+iymBQRwmpqTeqpDpssjQQOgIWkdABitLIUr1hoU1HoefqnigI3LdXx5fgp1a1lSeP1g2Y0O0O6QJ7IPnwpUTFRKEinhoVG4oaZybtatlT+s0IWOr6BaNtMm7V+p0yECu2MnNvTAQk9SUxQOFCQ/deN7DZ3POSy8kLmBSBTFnj5Wegj/FSU1XMt9czL3Y8XDPzeXpNWdpIg37W0V0rXMTqFbep6xKdSroSriPq2xkaDoBaEQeMV92jq6IMmeEPR6VjUWGq2qeAg2'}
设置请求头
headers = { 'Content-Type': 'application/json', }
设置 CK,每个 CK 包含备注和数值两部分,使用冒号分隔
cookies = [ '备注1:数值1', '备注2:数值2', '备注3:数值3', '备注4:数值4', '备注5:数值5', '备注6:数值6' ]
设置请求次数和请求间隔时间,单位为秒
request_count = 10 request_interval = 1
def make_request(cookie): try: # 发送请求并记录开始时间 start = datetime.datetime.now() response = requests.post(url, json=data, headers=headers, cookies={'cookie': cookie}) # 计算请求耗时和响应内容长度 elapsed = (datetime.datetime.now() - start).total_seconds() content_length = len(response.text.encode('utf-8')) # 输出请求状态码、耗时和响应内容长度 print(f'[{datetime.datetime.now()}] {cookie}: {response.status_code}, elapsed time: {elapsed:.3f}s, content length: {content_length}') return response.status_code, response.text except requests.exceptions.RequestException as e: # 输出请求异常信息 print(f'[{datetime.datetime.now()}] {cookie}: {str(e)}') return None, str(e)
执行请求
with concurrent.futures.ThreadPoolExecutor(max_workers=len(cookies)) as executor: for i in range(request_count): futures = [executor.submit(make_request, cookie) for cookie in cookies] for future in concurrent.futures.as_completed(futures): status_code, text = future.result() # 处理响应数据,可以在这里加入你的分析逻辑 time.sleep(request_interval)
原文地址: https://www.cveoy.top/t/topic/nK52 著作权归作者所有。请勿转载和采集!