微信小程序(同程艺龙酒店机票火车票)爬虫实战演示-Charles工具抓取安卓App数据包

微信小程序(同程艺龙酒店机票火车票)爬虫实战演示-Charles工具抓取安卓App数据包

今天这篇文章来介绍一下使用Charles抓取微信小程序数据包,其实跟抓取App是没有区别的,如果你已经学会了如何抓取安卓App的数据,那么这篇文章相对于你来说非常的简单!

在这里我不在说明Charles的使用方法,如果不会的话可参考:Charles抓包工具的安装和使用详解

我们抓取同程艺龙酒店机票火车票,这个微信小程序为例进行演示。其实我是选择了很久的,其它的小程序貌似没有可抓的东西(这里是抓不到)。我们需要抓取的是:

微信小程序(同程艺龙酒店机票火车票)爬虫实战演示-Charles工具抓取安卓App数据包

那么我们按照基本的操作进行数据的查找,需要注意的是,如果手机在配置代理后连不上网,可以先关闭WiFi,进入小程序里面,然后在开启WiFi进行抓包,最后发现了数据包如图:

微信小程序(同程艺龙酒店机票火车票)爬虫实战演示-Charles工具抓取安卓App数据包

是一个json数据,还是熟悉的样子,代码参考:

import requests
import json
#在Charles工具中发现可以的url地址
url='https://wx.17u.cn/cheapflights/bffapi/cheapflightapi/special_ticket/query?channel=2'
headers={
    'User-Agent':'okhttp/3.10.0',
}
response=requests.get(url,headers=headers)
html=json.loads(response.text)
for i in html['data']:
    item={}
    #省份
    item['tag']=i['tag']
    for li in i['list']:
        #出发地----->>目的地
        item['route']='{0}----->>{1}'.format(li['origCityName'],li['destCityName'])
        item['date']=li['date']
        item['price']=li['price']
        print(item)

这个还是比较简单的,一个url已经包含了所有的信息。自己也可以尝试其他的微信小程序进行抓取。

微信小程序的请求非常的简单,基本上没有验证信息,即便有验证信息也非常的脆弱。用Python来请求小程序的后台接口,从而获取数据,比请求异步加载网页的后台接口要容易的多。那么在爬虫开发过程中,如果目标网站有微信小程序,那么一定要优先调查能否通过小程序的接口来抓取数据。小程序的反爬虫能力比网页版低很多。使用小程序的接口来爬取数据,能极大的提高爬虫开发效率

分享到 :

发表评论

登录... 后才能评论