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算法相关推荐

  1. Python爬虫系列之多多买菜小程序数据爬取

    Python爬虫系列之多多买菜小程序数据爬取 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流, ...

  2. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  3. Python爬虫系列之逆向淘股吧app签名sign算法

    Python爬虫系列之逆向淘股吧app签名sign算法 CSDN不允许留下联系方式,如有侵权,请主查找联系方式联系删除 代码仅供学习交流,请勿用于非法用途 import hashlib import ...

  4. Python爬虫爬取肯德基餐厅信息案例实现(含源码及详细解释)

    1. 需求: 爬取肯德基某一地区的餐厅数量以及其具体信息 (以下代码我仅仅展示出餐厅的店名信息,并将其用列表方式保存在.txt文件中) 2.学习python爬虫的好课推荐: b站上的路飞学城IT,提醒 ...

  5. python 爬虫 爬取肯德基门店信息

    import requests 肯德基餐厅查询: http://www.kfc.com.cn/kfccda/storelist/index.aspx **分析:**数据为动态加载数据通过全局抓包工具的 ...

  6. Python爬虫 - 爬取肯德基门店信息

    import requests import jsonitem = [] header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) ...

  7. Python爬虫系列之爬取某奢侈品小程序店铺商品数据

    Python爬虫系列之爬取某奢侈品小程序店铺商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学 ...

  8. Python爬虫系列之爬取某优选微信小程序全国店铺商品数据

    Python爬虫系列之爬取某优选微信小程序全国商品数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击这里联系我们 < 微信请扫描下方二维码 代码仅 ...

  9. Python爬虫系列之爬取某社区团微信小程序店铺商品数据

    Python爬虫系列之爬取某社区团微信小程序店铺商品数据 如有问题QQ请> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流,请勿用于非法用途 数据库仅用于去重使用,数据主要存 ...

最新文章

  1. 程序员的你还沉浸在大公司就是螺丝钉?小公司锻炼人?错了!看完即懂
  2. 常州IBMV3700数据恢复成功
  3. PHP的echo和print小谈
  4. 2.9 迁移学习-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. Golang系列:打印命令行参数
  6. form data和request payload的区别
  7. 著名NFT藏家WhaleShark的NBA Top Shot账户估值达1580万美元
  8. Android--Handler
  9. 计算机画图星星怎么画,电脑画图工具 奇奕画王使用教程(附序列号)
  10. 智启联云GPS定位平台API开发接口HTTP/MQTT
  11. MSP430单片机,大学的回忆
  12. premiere(Pr)为视频配字幕 开放式字幕使用详解
  13. 十分钟看懂时序数据库(I)-存储
  14. better-scroll 在vue中使用on监听事件,事件无效问题解决
  15. Codeforeces——69A Young Physicist
  16. 由验证控件引起的IE的超级爆笑BUG
  17. 记录一个vue项目报错UnhandledPromiseRejectionWarning: Unhandled promise rejection.
  18. IO(BIO),NIO,AIO的深度解析和区别
  19. Java Web快速开发框架 ---- JSPX (一)
  20. Codeforces847M Weather Tomorrow

热门文章

  1. 周游C语言教程9 - 数组
  2. CMOS放电方法 下载
  3. 哪个品牌的运动耳机好,最值得入手的六款运动耳机推荐
  4. 奇葩的java代码_聊聊我面试过的一个最奇葩的 Java 程序猿!
  5. php的分布式_php分布式是什么
  6. ViSP平台 基于Ubuntu18.04安装第三方
  7. 模板方法模式和策略模式的应用场景浅析
  8. 按照某个VSAM文件去定义新的VSAM文件
  9. dropzone java多文件_dropzone上传文件
  10. Git初学者:msysgit和tortoisegit