网上爬虫交易平台apps

13730人阅读
Python(26)
转载请注明作者和出处:
运行平台: Windows
Python版本: Python3.x
IDE: Sublime text3
&&&&暑假回家,”小皇帝”般的生活持续了几天,头几天还挺舒服,闲久了顿时觉得好没意思。眼看着10天的假期就要结束,曾信誓旦旦地说要回家学习,可拿回家的两本书至今一页未翻,强烈的负罪感一直催促着:”你该学习了,你该学习了…”
&&&&我之前的爬虫博客,爬的都是网页的信息,什么下载小说啊,下载动漫啊,下载帅哥图、妹子图啊。玩这些东西的时候,你想过爬取手机APP里面的东西吗?
2 实战背景
&&&&程序员的鄙视链,您听说过吗?话说:老婆漂亮的程序员,鄙视老婆不漂亮的程序员;有老婆的程序员,鄙视没有老婆的程序员;没有老婆有女朋友的程序员,鄙视单身狗;在单身狗之间,才有语言、编辑器和操作系统的互相鄙视。不知为何,看到这句话的时候,我的内心阵阵绞痛。现在看看,这游戏也是如此。玩星际的,鄙视玩dota的;玩dota的,鄙视玩lol的;玩lol的,鄙视玩王者荣耀的。虽说王者荣耀处于游戏鄙视链的低端,但是不得不说,它确实有自己独到的魅力,正因为它降低了玩家的门槛,才有了如今的全民王者的热潮。你永远不知道自己匹配的队友和对手是老人,还是小孩。或者换种说法,是人,还是动物?
&&&&毫无疑问,王者荣耀从全民热度等诸多表现上看,是非常成功的游戏。可谓男女老少通吃,本文不讨论到底是女大学生坑,还是小学生坑,这样高难度的问题。咱玩点简单的,让我先看一款王者荣耀神器-王者荣耀盒子。《王者荣耀盒子》是专门为《王者荣耀》玩家量身打造的一款攻略应用,可谓上分必备神器,这里有职业选手教你英雄出装、铭文搭配和各种对线团战技巧,同时它也整合最全的游戏咨询以及游戏实时动态。先看看它长什么样:
&&&&APP下载地址:
&&&&本节课的内容,就是爬取《王者荣耀盒子》这款APP上的信息,废话不多说,直接开始实战!
3 准备工作
1 什么是Fiddler?
&&&&Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
&&&&既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示:
&&&&利用可以设置代理的这个特点,我们就可以对手机APP进行抓包了。怎么设置?不急不急,让我先把Fiddler安装上吧!
&&&& Fiddler下载地址:
&&&&傻瓜式安装,一键到底。Fiddler软件界面如图所示:
2 手机APP抓包设置
1 Fiddler设置
&&&&打开Fiddler软件,打开工具的设置。(Fiddler软件菜单栏:Tools-&Options)
&&&&在HTTPS中设置如下:
&&&&在Connections中设置如下,这里使用默认8888端口,当然也可以自己更改,但是注意不要与已经使用的端口冲突:
2 安全证书下载
&&&&在电脑浏览器中输入地址:http://localhost:8888/,点击FiddlerRoot certificate,下载安全证书:
3 安全证书安装
&&&&证书是需要在手机上进行安装的,这样在电脑Fiddler软件抓包的时候,手机使用电脑的网卡上网才不会报错。
&&&&将下载好的FiddlerRoot.cer安装证书拷贝到手机中,然后进行证书安装(以小米5手机为例),设置(Settings)-&(系统和设备中的)更多设置-&系统安全-&从存储设备安装:
&&&&然后找到拷贝的FiddlerRoot.cer进行安装即可。安装好之后,可以在信任的凭证中找到我们已经安装好的安全证书,在用户中可以看到证书如下:
4 局域网设置
&&&&想要使用Fiddler进行手机抓包,首先要确保手机和电脑的网络在一个内网中,可以使用让电脑和手机都连接同一个路由器。当然,也可以让电脑开放WIFI热点,手机连入。这里,我使用的方法是,让手机和电脑同时连入一个路由器中。最后,让手机使用电脑的代理IP进行上网。
&&&&首先,查看电脑的IP地址,在cmd中使用命令ipconfig查看电脑IP地址。找到无线局域网WLAN的IPv4地址,记下此地址。
&&&&在手机上,点击连接的WIFI进行网络修改,添加代理。进行手动设置,主机名即为上图中找到的IP地址,端口号即为Fiddler设置中的端口号8888:
5 Fiddler手机抓包测试
&&&&上述步骤都设置完成之后,用手机浏览器打开百度首页,我们就可以顺利抓包了,截图如下:
4 实战走起
1 下载英雄图片
&&&&先来个简单的例子热热身,我想将《英雄联盟盒子》中的英雄图片下载下来,该如何操作?
&&&&先使用Fiddler抓包看一下,在手机APP《英雄联盟盒子》中的菜单中点击英雄,电脑Fiddler就会抓包如下:
&&&&可以看到,GET请求的url地址,和返回的JSON格式的信息。那么编写代码如下:
import requests
if __name__ == '__main__':
headers = {'Accept-Charset': 'UTF-8',
'Accept-Encoding': 'gzip,deflate',
'User-Agent': 'Dalvik/2.1.0 (L U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)',
'X-Requested-With': 'XMLHttpRequest',
'Content-type': 'application/x-www-form-urlencoded',
'Connection': 'Keep-Alive',
'Host': 'gamehelper.gm825.com'}
heros_url = "http://gamehelper.gm825.com/wzry/hero/list?channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=D3894DBFDAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dceeadb&resolution=&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8"
req = requests.get(url = heros_url, headers = headers).json()
print(req['list'])
&&&&从代码运行结果中可以看到,百里玄策的英雄ID为104,他的图片存放地址为http://pic.wankacn.com/_adf.png:
&&&&知道了这些信息,我们就可以将这些英雄的图片进行下载了,编写代码如下:
from urllib.request import urlretrieve
import requests
函数说明:下载《英雄联盟盒子》中的英雄图片
Parameters:
heros_url - GET请求地址,通过Fiddler抓包获取
header - header信息
http://blog.csdn.net/c
def hero_imgs_download(heros_url,header):
req = requests.get(url = heros_url, headers = header).json()
hero_num = len(req['list'])
print('一共有%d个英雄' % hero_num)
hero_images_path = 'hero_images'
for each_hero in req['list']:
hero_photo_url = each_hero['cover']
hero_name = each_hero['name'] + '.jpg'
filename = hero_images_path + '/' + hero_name
if hero_images_path not in os.listdir():
os.makedirs(hero_images_path)
urlretrieve(url = hero_photo_url, filename = filename)
if __name__ == '__main__':
headers = {'Accept-Charset': 'UTF-8',
'Accept-Encoding': 'gzip,deflate',
'User-Agent': 'Dalvik/2.1.0 (L U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)',
'X-Requested-With': 'XMLHttpRequest',
'Content-type': 'application/x-www-form-urlencoded',
'Connection': 'Keep-Alive',
'Host': 'gamehelper.gm825.com'}
heros_url = "http://gamehelper.gm825.com/wzry/hero/list?channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=D3894DBFDAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dceeadb&resolution=&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8"
hero_imgs_download(heros_url,headers)
&&&&运行上述代码,看下结果,72个英雄的图片,分分钟搞定:
&&&&是不是很简单?接下来,再玩一个加点难度的。
2 英雄推荐出装查询助手
&&&&点击百里玄策这个英雄,可以看到,里面有他的简介,包括技能介绍,以及推荐出装等。那么,我们就了利用这个做一个自己的英雄出装查询小助手吧。
&&&&手机点击百里玄策这个英雄,可以在电脑Fiddler看到如下抓包内容:
&&&&我们看下GET请求的URL:
http://gamehelper.gm825.com/wzry/hero/detail?hero_id=104&channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=2654CC14D2D3894DBFDAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dceeadb&resolution=&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8
&&&&很有特点发现了吗?在url的hero_id为104,在上个小实例中,我们发现,这个104正好是英雄的id,那么是不是可以通过设置这个id来访问不同的英雄界面呢?测试一下答案就出来了,我们将id改为103,也就是女娲的hero_id,编写代码如下:
import requests
if __name__ == '__main__':
headers = {'Accept-Charset': 'UTF-8',
'Accept-Encoding': 'gzip,deflate',
'User-Agent': 'Dalvik/2.1.0 (L U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)',
'X-Requested-With': 'XMLHttpRequest',
'Content-type': 'application/x-www-form-urlencoded',
'Connection': 'Keep-Alive',
'Host': 'gamehelper.gm825.com'}
hero_url = "http://gamehelper.gm825.com/wzry/hero/detail?hero_id={}&channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=D3894DBFDAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dceeadb&resolution=&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8".format('103')
req = requests.get(url = hero_url, headers = headers).json()
print(req['info'])
&&&&运行上述代码,我们可以看到,打印的信息确实是英雄女娲的信息,返回的信息显示,这个英雄还没有上线。推荐出装保存在equip_choice中,可以看到这里没有给出装备的名字,只有装备的equip_id,那么在写推荐出装小程序之前,我们需要获取所有装备的ID。
&&&&怎样获取武器的信息?抓包方法同上,点击装备大全:
&&&&通过Fiddler抓包信息,编写代码如下:
import requests
if __name__ == '__main__':
headers = {'Accept-Charset': 'UTF-8',
'Accept-Encoding': 'gzip,deflate',
'User-Agent': 'Dalvik/2.1.0 (L U; Android 6.0.1; MI 5 MIUI/V8.1.6.0.MAACNDI)',
'X-Requested-With': 'XMLHttpRequest',
'Content-type': 'application/x-www-form-urlencoded',
'Connection': 'Keep-Alive',
'Host': 'gamehelper.gm825.com'}
weapon_url = "http://gamehelper.gm825.com/wzry/equip/list?channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=D3894DBFDAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dceeadb&resolution=&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8"
req = requests.get(url = weapon_url, headers = headers).json()
print(req['list'])
&&&&这样我们就轻松得到了各个装备的信息:
&&&&到这里,我们就可以整合代码了,首先通过获取每个英雄的ID,然后根据每个英雄的ID,再获得英雄的详细信息,包括推荐出装,最后通过推荐的装备ID,找到装备的信息并打印出来。
&&&&根据实现效果,自己编写代码试一试如何?《王者荣耀》出装小助手,运行效果如图所示:
&&&&如果功能已经实现了,那么先恭喜一声!上述功能代码获取地址: , 欢迎Follow、Star!
本文的例子没有什么实际价值,不过对于入门手机APP内容的爬取有一定的帮助作用。
趁着《王者荣耀盒子》APP没有更新,很好爬,赶紧动手实践吧!
爬取APP的内容和爬取网页的思路是一样的,都是通过抓包进行分析。
如有问题,请留言。如有错误,还望指正,谢谢!
PS: 如果觉得本篇本章对您有所帮助,欢迎关注、评论、顶!
本文出现的所有代码,均可在我的github上下载,欢迎Follow、Star:
访问:504093次
积分:6096
排名:第4918名
原创:104篇
评论:1413条
个人网站(文章首发) :
知乎专栏:
文章:11篇
阅读:67897
文章:23篇
阅读:19408
阅读:42930
阅读:38487
文章:15篇
阅读:255764
(1)(1)(1)(2)(5)(4)(7)(4)(10)(16)(14)(5)(1)(1)(1)(1)(12)(19)今天看啥 热点:
Python爬虫抓取手机APP的传输数据,python爬虫抓取app大多数APP里面返回的是json格式数据,或者一堆加密过的数据 。这里以超级课程表APP为例,抓取超级课程表里用户发的话题。
1、抓取APP数据包
方法详细可以参考这篇博文:Fiddler如何抓取手机APP数据包
得到超级课程表登录的地址:http://120.55.151.61/V2/StudentSkip/loginCheckV4.action
表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息,直接post过去就是。
另外必须加header,一开始我没有加header得到的是登录错误,所以要带上header信息。
登录代码:
import urllib2
from cookielib import CookieJar
loginUrl = 'http://120.55.151.61/V2/StudentSkip/loginCheckV4.action'
headers = {
'Content-Type': 'application/x-www-form- charset=UTF-8',
'User-Agent': 'Dalvik/1.6.0 (L 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=494&account=FCF030E1F2FBE5BBC422A3D&phoneVersion=16&password=A55B48BB75CA18C5F47D6&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参数
做法就和模拟登录网站一样。详见:Python爬虫模拟登录带验证码网站
下见最终代码,有主页获取和下拉加载更新。可以无限加载话题内容。
#!/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&' % timestamp
req = 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)
print 'load fail'
print loadResult
return False
loginUrl = '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- charset=UTF-8',
'User-Agent': 'Dalvik/1.6.0 (L 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=494&account=FCF030E1F2FBE5BBC422A3D&phoneVersion=16&password=A55B48BB75CA18C5F47D6&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!'
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)
您可能感兴趣的文章:Fiddler如何抓取手机APP数据包
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&
Python教程最近更新查看: 19798|回复: 4
使用万能框架HttpHelper抓取安卓APP数据
该用户从未签到
本人安卓手机上安装一款内部办公APP,里面有一个查询功能,在使用过程中用手机查询实在不方便,今天一直寻思有什么好办法把这个查询功能移植到自己的Winform中,下午突然想到苏飞老大的万能框架,在老大的指导下实现了自己想要的功能。下午发帖求助过,因数据是内部数据,下午发帖求救过程中涉及到服务器IP等,所以我把原帖修改了,留言让老大把帖删了,再次向苏飞老大说声对不起。同时对于苏飞老大的指导,再次表示感谢!&&下面说说实现过程吧:
第一步:抓取APP数据包。
& && &&&方法详见:
第二部:使用万能框架获得想要的数据
& &&&主要代码:
& &HttpHelper http = new HttpHelper();
& && && && && & HttpItem item = new HttpItem()
& && && && && & {
& && && && && && &&&URL = &http://服务器IP:8080/phoneserver/phserver&,//URL& &&&必需项& &
& && && && && && &&&Method = &post&,//URL& &&&可选项 默认为Get& &
& && && && && && &&&IsToLower = false,//得到的HTML代码是否转成小写& &&&可选项默认转小写& &
& && && && && && &&&Cookie = &&,//字符串Cookie& &&&可选项& &
& && && && && && &&&Referer = &&,//来源URL& &&&可选项& &
& && && && && && &&&Postdata = &&?xml version='1.0' encoding='GBK'?&&Packet&&
& && && && && && && && && && &&&+ &&Head&&RequestType&V002&/RequestType&&User&****&/User&&Password&******&/Password&&/Head&&Body&&BasePart&&QueryType&04&/QueryType&&PolicyNo/&&
& && && && && && && && && && &&&+ &&LicenseNo/&&
& && && && && && && && && && &&&+ &&FrameNo&&+textBox1.Text.Trim()+&&/FrameNo&&
& && && && && && && && && && & + &&FrameLastSixNo/&&
& && && && && && && && && && & + &&EngineLastSixNo/&&
& && && && && && && && && && & + &&PageNo&1&/PageNo&&
& && && && && && && && && && & + &&/BasePart&&
& && && && && && && && && && & + &&/Body&&/Packet&&,//Post数据& &&&可选项GET时不需要写& &
& && && && && && &&&Timeout = 100000,//连接超时时间& &&&可选项默认为100000& &
& && && && && && &&&ReadWriteTimeout = 30000,//写入Post数据超时时间& &&&可选项默认为30000& &
& && && && && && &&&UserAgent = &Mozilla/5.0 ( MSIE 9.0; Windows NT 6.1; Trident/5.0)&,//用户的浏览器类型,版本,操作系统& &&&可选项有默认值& &
& && && && && && &&&ContentType = &application/x-www-form-urlencoded&,//返回类型& & 可选项有默认值& &
& && && && && && &&&Allowautoredirect = false,//是否根据301跳转& &&&可选项& &
& && && && && && &&&//CerPath = &d:\123.cer&,//证书绝对路径& &&&可选项不需要证书时可以不写这个参数& &
& && && && && && &&&//Connectionlimit = 1024,//最大连接数& &&&可选项 默认为1024& &
& && && && && && &&&ProxyIp = &&,//代理服务器ID& &&&可选项 不需要代理 时可以不设置这三个参数& &
& && && && && && &&&//ProxyPwd = &123456&,//代理服务器密码& &&&可选项& &
& && && && && && &&&//ProxyUserName = &administrator&,//代理服务器账户名& &&&可选项& &
& && && && && && &&&ResultType = ResultType.String
& && && && && & };
& && && && && & HttpResult result = http.GetHtml(item);
& && && && && & string html = result.H
& && && && && & string cookie = result.C
& && && && && & richTextBox1.Text =
获取结果:
QQ图片51.jpg (257.89 KB, 下载次数: 293)
19:39 上传
该用户从未签到
受教了学习中……
该用户从未签到
受教了学习中……
该用户从未签到
楼主做保险的啊
该用户从未签到
楼主做保险的啊爬虫之手机APP抓包教程-亲测HTTP和HTTPS均可实现
时间: 20:17:15
&&&& 阅读:120
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&当下很多网站都有做自己的APP端产品,一个优秀的爬虫工程师,必须能够绕过难爬取点而取捷径,这是皆大欢喜的。但是在网上收罗和查阅了无数文档和资料,本人亲测无数次,均不能正常获取HTTPS数据,究其原因是手机端证书安装不正确所致,故编写文章以帮助后来的小伙伴。
当下抓包工具有Fiddler,Charles,wireshark等,手机APP最常用的是Fiddler和Charles,而wireshark适合作为测试用,下面我着重介绍Charles抓包工具的使用。
Charles是抓包工具中的神器,开发者可以使用它方便的抓取http请求,https请求,并支持修改、重放等功能。对于PC端和移动端都非常方便。
1、安装Charles:
  随便在网上都可以下载到,这里不做介绍
2、安装好Charles之后,需要进行简单的 配置:
  注意:要确保手机和Charles在同一个WIFI环境中
  使用ipconfig 查看电脑连接wifi所用的ip:
  打开Charles,点击左上角Proxy-&Proxy Settings,选中Enabel transparent HTTPproxying。点击ok。Port一般都是8888,这个要和下一步手机中的端口相同
3、配置好Charles后需要进行手机端的配置。
  打开手机,设置-&WIFI--&常按你手机连接的WIFI--&点击修改网络--&显示高级选择--&选择代理为手动--&主机名填你刚才ipconfig查询到的IP地址,端口号填8888,点击保存。ok,手机端设置好
4、重启Fiddler,此时可以抓取到http的包,如果您只需要抓取http数据,此时已经实现,如果您需要获取https包,请继续往下看
HTTPS请求的获取,需要进行对手机安装证书
1. 如下图,选择在移动设备上安装 Charles 根证书:
  下载即可
  然后点击SSL_Proxying下的第二个install,如下图:
2.& &然后打开手机的浏览器,输入 browse to 后面的地址进行下载,安装即可
正常情况下此时可以正常抓取https数据包,如果此时不能正常抓取https包,不要着急,这里有绝招:在这里不能正常抓取的原因是你的手机上没有正常安装证书,这里我们使用模拟安卓的模拟器进行替代手机进行抓包,我使用的“天天模拟器”,在网上下载天天模拟器,并进行安装,安装后,配置步骤同手机一样。配置完成并成功安装证书后就可以完美的享受i的https抓包过程了。如您遇到其他问题或者不能正常抓包,欢迎您留言。
Fiddler抓包工具教程参考文档:
  https://kb.cnblogs.com/page/130367/
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:http://www.cnblogs.com/fanjp666888/p/8094100.html
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 支付宝交易信息爬虫 的文章

 

随机推荐