利用fiddler抓包爬取微信小程序数据
发表时间:2020-10-14
发布人:葵宇科技
浏览次数:252
利用fiddler抓包爬取微信小程序数据
1.背景原理
有些微信小程序无法在PC端进行访问
原因
判断非微信‘内嵌浏览器’,则禁止访问
解决方法
模拟微信‘内嵌浏览器’进行访问,需要获取的数据有:User-Agent,以及登录信息cookie
2.Fiddler获取cookie和User-Agent
原理:Fiddler作为代理,手机端向服务器发送请求的时候,先发送到代理端Fiddler,然后代理端再将请求发送给服务器,返回的数据也是先返回到代理。
- 步骤1:手机端和电脑端通信,连接同一个局域网
- 步骤2:手机端连接代理,在手机wifi连接处填写电脑的ip以及Fiddler的端口号
- 步骤3:手机端连接http://电脑ip:端口号 获取证书并安装
- 步骤4:手机打开小程序就可抓取U-A和Cookie
-使用:使用Filddler获取cookie和User-Agent
3.愉快的下载数据
import re
import requests
import time
import json
import pandas as pd
headers={
'User-Agent': '你的User-Agent', #都可通过finddler转包获取
'Cookie': '你的cookie'
}#请求头信息,这里cookie信息必须添加,否则得不到网页信息
list = []
for i in range(1,10):
locationDataUrl = 'https://dzgj.yuyuebus.com/out/confirmListNew?page=' + str(i)
response = requests.get(locationDataUrl,headers=headers)#得到响应内容
html = response.text#得到网页的文本形式
data = json.loads(html).get('data').get('list') # json解析
for j in range(len(data)):
id = data[j]['id'] #获取数据的id
timeUrl = 'https://dzgj.yuyuebus.com/Customization/customizationDetailNew?id='+str(id) #得到用于获取时间的url
responseTime = requests.get(timeUrl,headers=headers)
htmlTime = responseTime.text
dataTime = json.loads(htmlTime).get('data').get('detail')
# 存列表输出csv
list.append(dataTime)
pd.DataFrame(list).to_csv('定制公交.csv',encoding='utf_8_sig')