本博客用于个人学习与工作中的收获

前言

前两天被安排了一个没有接触过的爬取微信小程序中数据的任务,虽然我是连爬虫貌似都还没写过的实习仔,但是想着应该不难,那可不就信心满满地接下任务了。然后第一天,一整天都在查资料看python爬虫相关的东西,什么urllibBeautifulSoup,虽然一天下来我也就记得个流程了,但至少知道是个啥了,也算是个有收获(摸鱼)的一天了。

结果到了第二天搜索爬取微信小程序相关的内容,结果发现貌似不太对,微信小程序我好像直接拿不到地址啊,那我的urllib.request就没有用武之地了啊,这可咋办?通过查阅资料发现微信小程序虽然把地址啥的都封装起来了,但是好像可以通过FiddlerCharles 等抓包工具抓到数据包。行吧,那就马上安排起来!开整!要是抓到包了总可以拿到数据或者地址啥的了吧!

准备工作

        

python 爬虫爬取微信小程序 python爬取微信小程序_python 爬虫爬取微信小程序

  • Fiddler中配置 Tool -> Options

python 爬虫爬取微信小程序 python爬取微信小程序_微信小程序_02

  • 勾选之后证书安装等弹窗全点 即可

这个端口号后面配置代理需要用到

python 爬虫爬取微信小程序 python爬取微信小程序_小程序_03

微信小程序设置

  • 理论上微信小程序使用手机端,通过局域网代理的模式应该可以抓到包,但是经过尝试之后发现貌似抓不到啊~又是经过一般努力研究(百度查查查),发现抓取手机微信小程序上的包需要Android 系统的版本比较低(7 以下?没仔细查了),或者是使用iOS的也行,可是贫穷的我没有啊(ಥ_ಥ),那我就只好将目标转移到PC端的微信小程序啦
  • 电脑微信登录时选择使用代理进行登录,代理的地址可以将鼠标在Fiddler的右上角的Online上查看,端口即为上面设置的端口号

python 爬虫爬取微信小程序 python爬取微信小程序_fiddler_04

  • 但是,注意:这时候你可能出现打不开微信小程序或者是抓不到小程序的包的情况 ,可以先将目录 C:\Users\[你的用户名]\AppData\Roaming\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime 下的文件先删除[微信先退出],注意【AppData】是隐藏目录哦。
  • 然后再次使用代理登录微信后打开小程序,打开小程序之后记得先将Fiddler的Cache和Cookies清除一下(不然可能会抓不到)
  • 然后按需访问小程序应该就可以抓到包进行一下相关爬取操作啦,实际效果如下,可以看到小程序的数据包中的内容了

python 爬虫爬取微信小程序 python爬取微信小程序_python 爬虫爬取微信小程序_05