1、抓取APP数据包

方法详细可以参考这篇博文:http://my.oschina.net/jhao104/blog/605963

得到超级课程表登录的地址:http://120.55.151.61/V2/StudentSkip/loginCheckV4.action

表单:

表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息,直接post过去就是。

另外必须加header,一开始我没有加header得到的是登录错误,所以要带上header信息。


2、登录

登录代码:

import urllib2
from cookielib import CookieJar
loginUrl = 'http://120.55.151.61/V2/StudentSkip/loginCheckV4.action'
headers = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','User-Agent': 'Dalvik/1.6.0 (Linux; U; Android 4.1.1; M040 Build/JRO03H)','Host': '120.55.151.61','Connection': 'Keep-Alive','Accept-Encoding': 'gzip','Content-Length': '207',}
loginData = 'phoneBrand=Meizu&platform=1&deviceCode=868033014919494&account=FCF030E1F2F6341C1C93BE5BBC422A3D&phoneVersion=16&password=A55B48BB75C79200379D82A18C5F47D6&channel=MXMarket&phoneModel=M040&versionNumber=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参数

做法就和模拟登录网站一样。详见:http://my.oschina.net/jhao104/blog/547311

下见最终代码,有主页获取和下拉加载更新。可以无限加载话题内容。

#!/usr/local/bin/python2.7
# -*- coding: utf8 -*-
"""超级课程表话题抓取
"""
import urllib2
from cookielib import CookieJar
import json''' 读Json数据 '''
def fetch_data(json_data):data = json_data['data']timestampLong = data['timestampLong']messageBO = data['messageBOs']topicList = []for each in messageBO:topicDict = {}if each.get('content', False):topicDict['content'] = each['content']topicDict['schoolName'] = each['schoolName']topicDict['messageId'] = each['messageId']topicDict['gender'] = each['studentBO']['gender']topicDict['time'] = each['issueTime']print each['schoolName'],each['content']topicList.append(topicDict)return timestampLong, topicList''' 加载更多 '''
def load(timestamp, headers, url):headers['Content-Length'] = '159'loadData = 'timestamp=%s&phoneBrand=Meizu&platform=1&genderType=-1&topicId=19&phoneVersion=16&selectType=3&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&' % timestampreq = urllib2.Request(url, loadData, headers)loadResult = opener.open(req).read()loginStatus = json.loads(loadResult).get('status', False)if loginStatus == 1:print 'load successful!'timestamp, topicList = fetch_data(json.loads(loadResult))load(timestamp, headers, url)else:print 'load fail'print loadResultreturn FalseloginUrl = 'http://120.55.151.61/V2/StudentSkip/loginCheckV4.action'
topicUrl = 'http://120.55.151.61/V2/Treehole/Message/getMessageByTopicIdV3.action'
headers = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','User-Agent': 'Dalvik/1.6.0 (Linux; U; Android 4.1.1; M040 Build/JRO03H)','Host': '120.55.151.61','Connection': 'Keep-Alive','Accept-Encoding': 'gzip','Content-Length': '207',}''' ---登录部分--- '''
loginData = 'phoneBrand=Meizu&platform=1&deviceCode=868033014919494&account=FCF030E1F2F6341C1C93BE5BBC422A3D&phoneVersion=16&password=A55B48BB75C79200379D82A18C5F47D6&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&'
cookieJar = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
req = urllib2.Request(loginUrl, loginData, headers)
loginResult = opener.open(req).read()
loginStatus = json.loads(loginResult).get('data', False)
if loginResult:print 'login successful!'
else:print 'login fail'print loginResult''' ---获取话题--- '''
topicData = 'timestamp=0&phoneBrand=Meizu&platform=1&genderType=-1&topicId=19&phoneVersion=16&selectType=3&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&'
headers['Content-Length'] = '147'
topicRequest = urllib2.Request(topicUrl, topicData, headers)
topicHtml = opener.open(topicRequest).read()
topicJson = json.loads(topicHtml)
topicStatus = topicJson.get('status', False)
print topicJson
if topicStatus == 1:print 'fetch topic success!'timestamp, topicList = fetch_data(topicJson)load(timestamp, headers, topicUrl)

结果:

转载请注明来源:http://my.oschina.net/jhao104/blog/606922

Python爬虫爬取手机APP的数据相关推荐

  1. python 爬虫爬取统计局北京统计数据

    python 爬虫爬取统计局统计数据 写在前面 主要因为朋友写论文,要爬取北京的经济数据.拜托我写一个爬虫爬取数据.爬取的都是公开的数据,代码仅供学习使用,切勿用作非法. http://tjj.bei ...

  2. Python爬虫-爬取手机应用市场中APP下载量

    一.首先是爬取360手机助手应用市场信息,用来爬取360应用市场,App软件信息,现阶段代码只能爬取下载量,如需爬取别的信息,请自行添加代码. 使用方法: 1.在D盘根目录新建.tet文件,命名为Ap ...

  3. python爬虫——爬取喜马拉雅app

    主要爬取喜马拉雅悬疑栏目的小说名字,演播者以及简介,先上爬取的数据图. 1. 此次抓取使用fiddler抓包,喜马拉雅的抓包很简单,这里就不多阐述. 通过对比两条的url可以发现只有ts-时间戳和pa ...

  4. python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据

    大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 得到超级课程表登录的地址:http://120.55 ...

  5. python爬虫爬取天猫店铺商品数据

    #!coding=utf-8 import requests import re import random import time import json from requests.package ...

  6. Python爬虫 爬取雪球网部分数据

    import requests import jsonurl = {'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?s ...

  7. python爬app_Python爬虫抓取手机APP的传输数据

    大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 方法详细可以参考这篇博文:Fiddler如何抓取手机 ...

  8. python爬虫app步骤_Python爬虫抓取手机APP的传输数据,python爬虫抓取app

    Python爬虫抓取手机APP的传输数据,python爬虫抓取app 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1. ...

  9. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

最新文章

  1. oop的三大特性和传统dom如何渲染
  2. CCNP-1 EIGRP基本配置(BSCI)
  3. PHP 的一些开发规范
  4. 关于CheckBoxList和RadioButtonList的几个问题
  5. CentOS 6.4 卸载与安装桌面
  6. 洛谷 P3102 [USACO14FEB]秘密代码Secret Code
  7. linux Hello World 模块编程
  8. 2016/9/23总结电脑内容
  9. 如何安装uclient_uclient软件
  10. GIMP教程 3 扭曲变换工具 (瘦脸 瘦腿)
  11. 【算法】合并两个有序链表
  12. excel复选框_使用复选框更改Excel公式结果
  13. 4维俄罗斯方块 java_烧脑的方块:解析“俄罗斯方块”4种不同的基础模块
  14. 移动硬盘插服务器上坏了,移动硬盘接口坏了怎么办解决教程
  15. 神箭手 爬虫操作(1)
  16. 计算机应用基础在线3,《计算机应用基础》第3阶段在线作业3.docx
  17. CString、CStringA 和 CStringW
  18. javac ‘javac‘ 不是内部或外部命令,也不是可运行的程序 的解决办法
  19. matlab 自动生成陷波滤波器算法实现
  20. c语言字母存储,字符串在内存中的储存——C语言进阶

热门文章

  1. document.documentElement与document.body
  2. Shiro登录的使用以及原理(一)
  3. SAR成像系列:【7】合成孔径雷达(SAR)成像算法-后向投影(Back Projecting)算法(附Matlab代码)
  4. php从照片中抠出人脸,PS怎样将一张图片上的人脸抠取五官下来到另一张图片
  5. 无线蓝牙耳机手机端app开发_汪峰耗时1500天造了一款耳机,秒杀苹果AirPods!
  6. LruCache的深入解析
  7. 浅析溯源(2):如何实现区块链溯源
  8. autoconf 版本升级
  9. Leetcode 1345 跳跃游戏 IV
  10. 【Linux】linux的vim文件怎么全选复制、粘贴