python微信小程序爬虫_Python爬取微信小程序实战(通用)

背景介绍

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

目标小程序:

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

1916157-20200918114009279-1644867018.png

环境

PC端:Windows 10

移动端:iPhone

软件:Charles

Charles抓包

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

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

1916157-20200918103353879-2130276161.png

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

1916157-20200918103624103-1181947390.png

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

1916157-20200918103729508-1975295465.png

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

1916157-20200918103921759-1472245667.png

此时手机的界面是这样的

1916157-20200918111246347-1940804435.png

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

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

1916157-20200918104507914-113879202.png

手机界面如下:

1916157-20200918111301656-1003964296.png

没错就是这个请求了!

分析请求

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

1916157-20200918104803272-1332150374.png

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

1916157-20200918105242057-524462496.png

复制到这里看看:

{"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)

运行结果:

1916157-20200918110200160-1718252702.png

完整项目

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/142663.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

python如何运行?第一个python小程序示范

我们想要用python编程首先要做的就是安装一些工具,随后学会应用。那么问题来了,我们需要安装什么?python又是怎样运行的呢? 安装什么工具? 1、Python 3.6.5(我安装的,还有很多版本&#xff09…

python写一个完整的小程序_写一个python小程序

在windows环境下进行操作 window+R 输入cmd 创建一个文件夹 mkdir pytxt 创建一个py文件 py.py 用notepad或者记事本等工具进行编辑 或 首先声明python3.5以后没有中文乱码,已经支持中文,就像java的jdk1.6以后都支持中文一样。 进入python交互环境下然后可以进行数据运算,…

整理了适合新手的20个Python练手小程序

100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python。 本文附带基础视频教程:私信回复【基础】就可以获取的 【程序1】 题目:有1、2、3、4个数字&…

Python之有趣的小程序

目录 前言 一、阶乘计算器 1.运行结果 2.源代码 3.知识点 (1)while的语法 (2) 注意 二、斐波那契数列 1.运行结果 2.源代码 3.知识点 三、猜数字游戏 1.运行结果 2.源代码 3.知识点 (1)多重…

40个Python入门小程序

有不少同学学完Python后仍然很难将其灵活运用。我整理 37 个Python入门的小程序。在实践中应用Python会有事半功倍的效果。 例子1:华氏温度转换为摄氏温度 华氏温度转摄氏温度的公式:C (F - 32) / 1.8。本例考察Python的加减乘除运算符。 ""…

【强推】8个实用的Python程序

1. 引言 本文所提到的所有代码都曾经帮助我激发了解决问题的一些思考。不言而喻,如果您想学习编码和提升解决问题的能力,我们可以尝试自己来解决以下问题。 闲话少说,我们直接开始吧。 :) 2. 处理句子中的脏话 编写…

【Python精华】100个Python练手小程序

100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python。 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数&#xff…

【代码附】Python实现简单的7款小程序。

前文 在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作。 下面带大家做7款各种功能不一样的项目。 闹钟 目的:编写一个创建闹钟的Python脚本。 提示:你可以使用date-time模块创建闹钟,以及…

六级备考24天|CET-6|翻译技巧3|翻译2020年6月真题红楼梦|逻辑问题|理解背诵|20:50~22:30

目录 一、逻辑重建 例句1 例句2 例句3 二、定语和状语 定语的翻译原则 什么是状语? 状语位置 状语的基本形式 三、主动和被动 四、无主句 五、并列和连动 连动 六、作题步骤 七、红楼梦 PRACTICE ANSWER​ 时态问题 一、逻辑重建 试比较: 1. 下雨了…

eclipse环境配置

eclipse环境配置 0. 前言1. 下载eclipse2. 下载sdk3. 配置sdk环境变量4. 验证sdk其他 0. 前言 本节记录如何配置eclipse的sdk配置 操作系统:Windows10 专业版 开发环境:eclipse 1. 下载eclipse 来这边下载一下eclipse 菜鸟教程 完事之后打开eclips…

如何在Linux中安装redis(图文教程,按照步骤可安装成功)

目录 1、在Redis版本库:https://download.redis.io/releases/ 可根据自己的需求选择下载对应的版本,然后直接下载 2、通过Xftp工具进行上传,选择指定的应用拖到右侧对应的目录即可(可以放在Linux的tmp目录下,之后再进…

Centos7安装Redis教程

Centos7安装Redis 0、更新文件 yum update -y这里会更新好多内容,需要等待一会。 1、下载redis 【CSDN资源下载】 https://redis.io/ 2、将压缩包放到Linux,我放在了export/intstall并解压 cd /export/install tar -zxvf redis-6.2.1.tar.gz3、安…

超级详细 的 Redis 安装教程

超级详细 的 Redis 安装教程 Windows 版本的 Redis 是 Microsoft 的开源部门提供的 Redis. 这个版本的 Redis 适合开发人员学习使用,生产环境中使用 Linux 系统上的 Redis, 这里讲解了这两种的安装和下载。按照你们需要的liunx 或window步骤来 就可以了(…

基础篇009.1 STM32驱动RC522 RFID模块之一:基础知识

目录 1. RFID概述 1.1 RFID工作原理 1.2 RFID分类 1.3 RFID模块 1.4 RFID卡片 1.5 IC卡和ID卡介绍 1.6 IC卡和ID的区分 2. Mifare卡结构原理 2.1 Mifare卡概述 2.2 Mifare非接触式 IC 卡性能简介(M1) 2.2.1 Mifare S50与Mifare S70 2.2.2 S5…

redis下载安装教程

前言 今天做一个redis下载安装教程文章分享给大家。 操作 1、下载网址:https://github.com/MicrosoftArchive/redis/releases 2、我们选择安装版的 3、双击安装 4、下一步 5、选择一个安装路径,并打上对勾,对勾可以将redis添加到环境变量…

centos安装Redis详细教程

1、网上搜索redis,查找下载连接 链接为http://download.redis.io/releases/redis-6.0.3.tar.gz 2、使用wget下载gz包,安装成功如图所示 wget http://download.redis.io/releases/redis-6.0.3.tar.gz 3、下载完毕之后进行解压 tar -zxvf redis-6.0.3.t…

Linux 下 Redis 安装教程

Linux 下 Redis 安装教程 事先准备下载 Redis安装 Redis设置 Redis 开机自启动远程访问 RedisRDM 远程访问 Redis 笔者的运行环境: CentOS Stream 8 x86_64 Redis 6.2.5 事先准备 进行这个教程之前,必须要先安装好一个 Linux 操作系统。这个 Linux 操作…

Redis安装教程(保姆级详细图文)

🧧Redis系列: 🎇Redis安装教程(保姆级详细图文)](https://rhysni.blog.csdn.net/article/details/123343579?spm1001.2014.3001.5502) 🎇布隆过滤器安装步骤 🎇小记一手 “Redis持久化机制” &…

Redis安装教程(Windows版)

1. 下载安装包 https://robinliu.3322.org:8888/download/Redis-x64-3.2.100.msi 2. 安装注意事项 为了便于使用,在安装时, 强烈推荐勾选 “ 将 Redis 安装到的文件夹添加到 Windows 的环境变量中 ” ,如 下图所示: 安装过…

Redis的安装教程(Windows+Linux)【超详细】

Redis的安装教程 Redis简介在Windows环境下搭建下载安装包解压安装包进入到Redis目录下打开cmd窗口验证 在Linux环境下搭建创建一个存放Redis的文件夹,下载安装包解压安装包开始安装启动Redis服务 Redis简介 官方文档:点这里 Redis是开放源代码&#xf…