Python爬取微信小程序通用方法代码实例详解


Posted in Python onSeptember 29, 2020

背景介绍

最近遇到一个需求,大致就是要获取某个小程序上的数据。心想小程序本质上就是移动端加壳的浏览器,所以想到用Python去获取数据。在网上学习了一下如何实现后,记录一下我的实现过程以及所踩过的小坑。本文关键词:Python,小程序,Charles抓包

目标小程序:

公众号“同城商圈网”左下角“找商家”->汽车维修->小车维修->所有的商家信息,如下图所示:

Python爬取微信小程序通用方法代码实例详解

环境

PC端:Windows 10

移动端:iPhone

软件:Charles

Charles抓包

虽说网上大佬的教程很好很详细,但我想加入几个坑点解释,请点此查看Charles配置教程

Charles清空当前获取到的连接,防止干扰(学会使用这个黄色扫把!很有用)

Python爬取微信小程序通用方法代码实例详解

打开微信小程序进入到指定界面,Charles中显示如下

Python爬取微信小程序通用方法代码实例详解

进入到某个具体商家后,最先请求的是这个

Python爬取微信小程序通用方法代码实例详解

于是我们猜测,这个可能就是小程序相关的http请求,点进去我们看一下

Python爬取微信小程序通用方法代码实例详解

此时手机的界面是这样的

Python爬取微信小程序通用方法代码实例详解

诶,好像就是这个!(其实我也是一个一个试了好久,多试试就会找到啦,当然如果你懂点英文,能看懂左侧的英文就更好了!merchant就是商家的意思~),

但是我们想要获取所有的商家信息怎么办呢?那就先点击Charles上的黄色小扫把~,再返回到商家列表看看

Python爬取微信小程序通用方法代码实例详解

手机界面如下:

Python爬取微信小程序通用方法代码实例详解

没错就是这个请求了!

分析请求

选中左边发送的请求,右边点击Overview选项卡,查看请求信息,我们不难发现这是个POST请求

Python爬取微信小程序通用方法代码实例详解

我们知道POST请求提交的是表单,那么表单数据在哪里呢?我们可以在右边界面,鼠标右击,点击Copy Request就能获取表单数据了!

Python爬取微信小程序通用方法代码实例详解

复制到这里看看:

{"pageIndex":1,"pageSize":50,"regionId":"8","categoryId":"148","orderRule":0}

看到这里,我们就能猜出个大概了,pageIndex是页码,pageSize是每页显示数量,regionId是地区编号,categoryId是货品编号,orderRule是排序规则,至此抓包结束,我们成功抓到了目标包!

本节抓包方法理论上适合所有小程序,其他的你们可以自行尝试哦~

编写python代码

这里我们就简单的写个demo

import requests

url = "http://api.tc688.net/api/services/app/merchant/LoadCategoryMerchants"
header = {
  'Origin':'http://zazhi.tc688.net',
  'Host':'api.tc688.net',
  'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.14(0x17000e2e) NetType/WIFI Language/zh_CN',
  'Referer':'http://zazhi.tc688.net/companylist?id=148',
}
data = {"pageIndex":1,"pageSize":50,"regionId":"8","categoryId":"148","orderRule":0}
r = requests.post(url=url,data=data,headers=header)
print(r.text)

运行结果:

Python爬取微信小程序通用方法代码实例详解

完整项目

有关数据处理以及更换地区的详细代码,请访问我的GitHub:GitHub

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
Flask之请求钩子的实现
Dec 23 Python
使用Python 统计高频字数的方法
Jan 31 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 Python
详解如何修改python中字典的键和值
Sep 29 #Python
提高python代码运行效率的一些建议
Sep 29 #Python
Python爬取微信小程序Charles实现过程图解
Sep 29 #Python
Python Charles抓包配置实现流程图解
Sep 29 #Python
python和node.js生成当前时间戳的示例
Sep 29 #Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 #Python
Python 下载Bing壁纸的示例
Sep 29 #Python
You might like
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
Python中apply函数的用法实例教程
2014/07/31 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
Python 处理图片像素点的实例
2019/01/08 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
python  logging日志打印过程解析
2019/10/22 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
Python如何根据时间序列数据作图
2020/05/12 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
期末自我鉴定
2014/02/02 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
退伍军人感言
2015/08/01 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
python基础之模块的导入
2021/10/24 Python