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 相关文章推荐
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
编写Python脚本来实现最简单的FTP下载的教程
May 04 Python
在Django的视图中使用form对象的方法
Jul 18 Python
Python实现字典的key和values的交换
Aug 04 Python
使用python实现生成用户信息
Mar 20 Python
python 调用有道api接口的方法
Jan 03 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
python tqdm库的使用
Nov 30 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 Python
Python使用protobuf序列化和反序列化的实现
May 19 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冒泡算法详解(递归实现)
2014/11/10 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
django之session与分页(实例讲解)
2017/11/13 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
护士岗位职责
2014/02/16 职场文书
干部选拔任用方案
2014/05/26 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server