微信小程序“校园集市”爬取
一、前言
由于课程作业需要用到校园集市上的一些数据,所以要学着怎么爬取微信小程序。原以为只需要像往常的爬虫一样写一下head和requests就可以获取json文件了。但是,微信小程序一般都需要登录,才能使用,由于笔者水平有限,就没有搞模拟登录。在网上看到可以使用Charles获取APP的请求,就想着试一下。
二、Charles下载与安装
2.1 Charles简介(Charles(HTTP代理服务器)_百度百科 (baidu.com))
Charles,一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
Charles主要功能:
- 支持SSL代理。可以截取分析SSL的请求。
- 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
- 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
- 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 检查HTML,CSS和RSS内容是否符合W3C标准。
2.2 Charles下载网址
在官网上选择计算机相应版本下载即可 https://www.charlesproxy.com/download/
2.3 Charles 配置
参考(14条消息) Python爬取微信小程序(Charles)_偷偷玩两下的博客-CSDN博客_python爬取小程序。这里我们只需要完成Charles的证书配置即可。
-
Charles安装证书:Help -> SSL Proxying -> Install Charles Root Certificate
-
点击安装证书
-
这一步无所谓,点击下一步
-
勾选**“将所有的证书都放入下列存储§”,然后点击“浏览®…”**。
-
然后选择**“受信任的根证书颁发机构”**。
- 选择完后点击下一步,最后完成证书导入即可。
-
在此路径下查看证书是否安装成功:Help -> SSL Proxying -> Install Charles Root Certificate。我的是这样的:
三、开始爬取
3.1 Curl Command获取
- 在Windows端微信登录并进入“校园集市”页面,此时Charles会获取到相应的requests和response文件信息。
- 右键点击相应的请求,复制cURL Request,获取得到了curl Command。
3.2 Curl Command 转换为 python
- 将Curl Command转化成python指令,Convert curl commands to Python (curlconverter.com) <-- 在这个宝藏开源网站即可转换,这些可以直接复制,并运行。
3.3 数据爬取
将上述python代码直接复制并运行,即可得到相应的数据,储存在变量response中,一般都为json的文件格式。在本例中,显然可以通过改变params中的’from_time’变量来请求获取不同时间的数据,从而爬取得到不同的数据。在本文中,json格式数据处理的方式就不加以赘述了,同时,如何得到确定‘from_time’这个的值也是值得探讨的问题。
以下为爬取得到的response中json格式的数据,都是些有趣的话题,但许多也不乏深度。