Python爬虫抓取手机APP的传输数据.pdf
文本预览下载声明
Python爬虫抓取手机APP的传输数据
大多数APP里面返回的是json格式数据,或者一堆加密过的数据 。这里以超级课程表APP为例,抓 超级课程表里用户发
的话题。
1、、抓抓 APP数数据据包包
方法详细可以参考这篇博文:Fiddler如何抓 手机APP数据包
得到超级课程表登录的地址:1/V2/StudentSkip/loginCheckV .action
表单:
表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息,直接post过去就是。
另外必须加header,一开始我没有加header得到的是登录错误,所以要带上header信息。
2、登录
登登录录代代码码::
import urllib2
from cookielib import CookieJar
loginUrl = http:// 1/V2/StudentSkip/loginCheckV .action
headers = {
Content-Type: application/x-www-form-urlencoded; charset=UTF-8,
User-Agent: Dalvik/ 1.6.0 (Linux; U; Android .1.1; M0 0 Build/JRO03H),
Host: 1,
Connection: Keep-Alive,
Accept-Encoding: gzip,
Content-Length: 207,
}
loginData = phoneBrand=Meizuplatform= 1deviceCode 919 9 account=FCF030E1F2F63 1C1C93BE5
BBC 22A3DphoneVersion= 16password=A55B 8BB7582A18C5F 7D6channel=MXMarketphoneMo
del=M0 0versionNumber=7.2.1
cookieJar = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
req = urllib2.Request(loginUrl, loginData, headers)
loginResult = opener.open(req).read()
print loginResult
登录成功 会返回一串账号信息的json数据
和抓包时返回数据一样,证明登录成功
3、抓 数据
用同样方法得到话题的url和post参数
做法就和模拟登录网站一样。详见:Python爬虫模拟登录带验证码网站
下见最终代码,有主页获 和下拉加载更新。可以无限加载话题内容。
?
#!/usr/local/bin/python2.7
# -*- coding: utf8 -*-
1
2 超级课程表话题抓
3
import urllib2
5 from cookielib import CookieJar
6 import json
7 读Json数据
8 def fetch_data(json_data):
9 data = json_data[data]
10 timestampLong = data[timestampLong]
11 messageBO = data[messageBOs]
12 topicList = []
13 for each in messageBO:
1 topicDict = {}
15 if each.get(content, False):
16 topicDict[content] = each[content]
17 topicDict[schoolName] = each[schoolName]
18 topicDict[messageId] = each[messageId]
19 topicDict[gender] = each[studentBO][gender]
20 topicDict[time] = ea
显示全部