Python爬虫系列之肯德基宅急送小程序kbcts、kbsv算法
Python爬虫系列之肯德基宅急送小程序kbcts、kbsv算法
如有疑问> 点击这里与我交流 <
微信请扫描下方二维码
代码仅供学习交流,请勿用于非法用途
直接上代码
import requests
import json
import time
import random
from RedisUtil import RedisUtil
import hashlibretry = 3
timeout = 20
kw = "wx_code_"
r = RedisUtil()
userUniqueId = None
token = Nonedef getCode():while True:keys = r.getLikeKeys(kw)if keys is not None and len(keys) > 0:key = random.choice(keys)code = r.get(key)r.rm(key)return codeelse:print("暂无可用code,等待生产中......")time.sleep(5)def postHtml(url, data, headers):for i in range(retry):try:resp = requests.post(url, data=data, headers=headers, timeout=timeout)return resp.json()except Exception as e:print(e)passdef getHtml(url, headers):for i in range(retry):try:resp = requests.get(url, headers=headers, timeout=timeout)return resp.json()except Exception as e:passdef getMd5(s):m = hashlib.md5()m.update(s.encode("utf-8"))return m.hexdigest()def getHeaders(urlPath, data):kbcts = getKbcts()kbsv = getKbsv(urlPath, data, kbcts)return {"user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat","content-type": "application/json","kbck": "","kbcts": kbcts,"kbiz": "kfcDelivery","kbsv": kbsv,}def updateToken():global tokenwhile True:url = "https://authlogin.kfc.com.cn/api/wx/lapp/login"data = {"code": getCode(),"md5appid": "a4fde03f5dbf96b1270253c3d03ed30b"}headers = getHeaders("/wx/lapp/login", data)res = postHtml(url, json.dumps(data), headers)try:token = res['data']['token']if token is not None:returnexcept Exception as e:passprint("/api/wx/lapp/login 获取 token失败!")time.sleep(5)def updateUserUniqueId():global userUniqueIdwhile True:url = "https://wechat.4008823823.com.cn/base/v2/initial"data = {"body": {},"portalType": "kfc_delivery_wechatmini","portalSource": "KFC_WEAPP","userUniqueId": "","token": "","ticket": "","appVerParams": {"hotUpdateLabel": "updateLabel"},"_channel": "WeApp","openId": "","channelId": "","version": "3001.9.0"}headers = getHeaders("/base/v2/initial", data)res = postHtml(url, json.dumps(data), headers)try:userUniqueId = res['userUniqueId']if userUniqueId is not None:returnexcept Exception as e:passprint("/base/v2/initial 获取 userUniqueId失败!")time.sleep(5)def getNearestStore(longitude, latitude):url = "https://wechat.4008823823.com.cn/misc/v2/getNearestStore"data = {"body": {"webValidateCustomerAddress": {"addressId": "1","cityCode": "0000","longitude": longitude,"latitude": latitude,"customerId": "1","mainAddress": "1","supplementalAddress": "无"}},"portalType": "kfc_delivery_wechatmini","portalSource": "KFC_WEAPP","userUniqueId": userUniqueId,"token": token,"ticket": token,"appVerParams": {"hotUpdateLabel": "updateLabel"},"_channel": "WeApp","openId": "","channelId": "","version": "3001.9.0"}headers = getHeaders("/misc/v2/getNearestStore", data)res = postHtml(url, json.dumps(data), headers)try:print(res)except Exception as e:passdef ini():updateToken()updateUserUniqueId()def main():ini()longitude = "116.375155"latitude = "39.914521"getNearestStore(longitude, latitude)if __name__ == '__main__':main()
另附:获取任意微信小程序code方法,更多技术交流> 点击这里与我沟通 <
Python爬虫系列之肯德基宅急送小程序kbcts、kbsv算法相关推荐
- Python爬虫系列之多多买菜小程序数据爬取
Python爬虫系列之多多买菜小程序数据爬取 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流, ...
- python爬虫爬取微信公众号小程序信息
python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...
- Python爬虫系列之逆向淘股吧app签名sign算法
Python爬虫系列之逆向淘股吧app签名sign算法 CSDN不允许留下联系方式,如有侵权,请主查找联系方式联系删除 代码仅供学习交流,请勿用于非法用途 import hashlib import ...
- Python爬虫爬取肯德基餐厅信息案例实现(含源码及详细解释)
1. 需求: 爬取肯德基某一地区的餐厅数量以及其具体信息 (以下代码我仅仅展示出餐厅的店名信息,并将其用列表方式保存在.txt文件中) 2.学习python爬虫的好课推荐: b站上的路飞学城IT,提醒 ...
- python 爬虫 爬取肯德基门店信息
import requests 肯德基餐厅查询: http://www.kfc.com.cn/kfccda/storelist/index.aspx **分析:**数据为动态加载数据通过全局抓包工具的 ...
- Python爬虫 - 爬取肯德基门店信息
import requests import jsonitem = [] header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) ...
- Python爬虫系列之爬取某奢侈品小程序店铺商品数据
Python爬虫系列之爬取某奢侈品小程序店铺商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学 ...
- Python爬虫系列之爬取某优选微信小程序全国店铺商品数据
Python爬虫系列之爬取某优选微信小程序全国商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击这里联系我们 < 微信请扫描下方二维码 代码仅 ...
- Python爬虫系列之爬取某社区团微信小程序店铺商品数据
Python爬虫系列之爬取某社区团微信小程序店铺商品数据 如有问题QQ请> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流,请勿用于非法用途 数据库仅用于去重使用,数据主要存 ...
最新文章
- 程序员的你还沉浸在大公司就是螺丝钉?小公司锻炼人?错了!看完即懂
- 常州IBMV3700数据恢复成功
- PHP的echo和print小谈
- 2.9 迁移学习-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- Golang系列:打印命令行参数
- form data和request payload的区别
- 著名NFT藏家WhaleShark的NBA Top Shot账户估值达1580万美元
- Android--Handler
- 计算机画图星星怎么画,电脑画图工具 奇奕画王使用教程(附序列号)
- 智启联云GPS定位平台API开发接口HTTP/MQTT
- MSP430单片机,大学的回忆
- premiere(Pr)为视频配字幕 开放式字幕使用详解
- 十分钟看懂时序数据库(I)-存储
- better-scroll 在vue中使用on监听事件,事件无效问题解决
- Codeforeces——69A Young Physicist
- 由验证控件引起的IE的超级爆笑BUG
- 记录一个vue项目报错UnhandledPromiseRejectionWarning: Unhandled promise rejection.
- IO(BIO),NIO,AIO的深度解析和区别
- Java Web快速开发框架 ---- JSPX (一)
- Codeforces847M Weather Tomorrow