Python实战:解决了小程序抓包返回400状态码问题

在深入研究微信小程序时,我尝试通过 MannerCoffee 下单小程序获取数据接口。但在使用 Python 的 request 库进行爬取数据时,遇到了在调用接口时返回 400 错误的问题。在使用 Reqable 进行抓包后,发现接口可以正常运行,这让我感到困惑。代码没有明显问题,但返回状态码始终是 400。经过一番查找资料,我...
Python实战:解决了小程序抓包返回400状态码问题
在深入研究微信小程序时,我尝试通过 MannerCoffee 下单小程序获取数据接口。但在使用 Python 的 request 库进行爬取数据时,遇到了在调用接口时返回 400 错误的问题。在使用 Reqable 进行抓包后,发现接口可以正常运行,这让我感到困惑。代码没有明显问题,但返回状态码始终是 400。

经过一番查找资料,我找到了问题的关键:请求的 headers 中的 Content-type 需要从 "application/json" 改为 "json"。在进行这一修改后,请求顺利返回了数据,状态码变为 200,问题得以解决。

接口调通后,我便能够直接调用小程序接口,获取城市列表和门店列表。经过分析,我找到了城市接口的 URL 为:https://triangle.wearemanner.com/mp-api/v1/areas/tree?isContainsCountry=false。而门店接口 URL 为:https://triangle.wearemanner.com/mp-api/v1/shops?isCompact=true&areaCode=320200&level=4。在门店 URL 中,只有 areaCode 是变化参数,可以从城市的响应中获取,从而构造每个城市的门店 URL。

首先,我通过爬虫代码获取到城市列表,并将其保存为 Excel 文件。接着,利用获取到的 areaCode 参数,我构造了门店接口的 URL,通过爬虫代码获取每个城市的门店,并将数据保存为 Excel 文件。最后,将全国的门店数据整合,生成了一个完整的 Excel 文件。整个过程在 PyCharm 控制台运行,耗时约 3 分钟,完成 56 次请求,成功获取到了全国 1109 个门店。

获取到的数据被分别保存为每个城市的独立 Excel 文件和一个全国汇总的 Excel 文件。在生成每个 Excel 文件前,我通过代码对数据进行了排序和重命名,确保了数据的组织结构。完整代码已被整理出来,可用于执行此任务。

总结而言,解决编程中遇到的问题需要耐心地查找资料和不断尝试。通过本文分享的经验,希望能帮助到有类似需求的读者。文章首发在“程序员coding”公众号,欢迎关注并与我一同探讨学习。数据集已上传至公众号,后台回复“Manner Coffee”即可获取。2024-08-16
mengvlog 阅读 11 次 更新于 2025-07-21 07:04:19 我来答关注问题0
  • 在深入研究微信小程序时,我尝试通过 MannerCoffee 下单小程序获取数据接口。但在使用 Python 的 request 库进行爬取数据时,遇到了在调用接口时返回 400 错误的问题。在使用 Reqable 进行抓包后,发现接口可以正常运行,这让我感到困惑。代码没有明显问题,但返回状态码始终是 400。经过一番查找资料,我...

  •  潮品收藏家 如何用python设计一个能实现添加、修改、删除、显示、退出等功能的小程序?

    定义一个空字典用于存储数据data = {}定义一个无限循环,直到用户选择退出程序while True:显示菜单选项print("请选择操作:")print("1. 添加")print("2. 修改")print("3. 删除")print("4. 显示")print("5. 退出")获取用户输入的选项choice = input("请输入选项:")根据用户输入的选项执行不...

  • Python不可以直接开发微信小程序,但可以用于开发后端服务,与小程序前端进行交互。微信小程序主要使用JavaScript、WXML(类似于HTML的标记语言)和WXSS(类似于CSS的样式表语言)进行开发。Python可以开发APP。虽然Python在移动应用开发领域不是最主流的语言,但确实存在多种方法和框架,使得Python能够用于开发手机...

  • 因为票数有限,还有黄牛们不能丢了饭碗,所以导致了,很多人都抢不到票。那么,今天带大家用Python来制作一个自动抢票的脚本小程序。开发环境:版本:python3.8.8。编辑器:pycharm。第一步,实现免登录。确定目标,设置全局变量。初始化加载 登录调用设置cookie 获取cookie 登录 打开浏览器 第二步,抢...

  • 通过Python爬取微信小程序内容,首先要了解小程序与H5访问的不同之处。小程序作为一个封装了微信操作的APP,请求和返回的数据无法直接获取,因为它们都被封装在程序内。解决方法是使用抓包工具,如Charles,作为代理,拦截小程序的请求和返回的数据。Charles通过中间人攻击原理,捕捉到请求和响应的数据,让...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部