搜索
aardio官方社区 门户 查看主题

抓取百度音乐(iPhone客户端)封包的一次实践

发布者: lujjjh | 发布时间: 2012-11-7 21:39| 查看数: 29830| 评论数: 197|帖子模式

本帖最后由 lujjjh 于 2013-2-7 12:26 编辑

很早之前,程序员们就发明了“采集”这个玩意儿;现在,我们也离不开“采集”,比如在自己的程序中嵌入一个天气预报的功能。我们也许已经习惯于使用 inet.whttp 下载网页源码,再用模式匹配进行匹配处理,得到我们想要的数据了。不过这样的“采集”是“不合法”的,网站只要一改版,那就得一把鼻涕一把泪,卷土重来了。

还好,随着智能手机的普及,很多软件诸如 QQ、百度音乐,都为智能手机提供了“绿色通道”——即XXX专用客户端。不过,我们已经习惯了我们在电脑上的抓包工具,例如 Firebug、SmartSniff。在智能机上怎样抓包,这确实是一个问题。

今天,我给大家带来一个可行的方案,以百度音乐iPhone客户端为例。

原理很简单,五个字——代理服务器。只需要在电脑上建立一个代理服务器,手机上设置好代理服务器即可。不过,需要注意的一点就是,手机需要与电脑处于同一局域网内(否则较为麻烦,需要得到外网IP,使用路由器的还需要映射端口)。

第一步、架设代理服务器
代理服务器软件有很多,这里我以 CCProxy 为例。软件请大家自行搜索下载,设置很简单。

打开 CCProxy:
ccproxy.png

设置->高级->网络 中取消“进制局域网外部用户”(经测试,虽然是局域网内部用户,但不取消似乎无法成功,也许是版本问题):
ccproxy2.png

第二步、设置手机代理服务器
不同系统设置方式不同,这里以 iPhone(iOS) 为例。

打开 设置->Wi-Fi 网络:
IMG_0232.PNG

点右侧的三角,进入设置,在 HTTP代理 中选择“手动”,并且输入电脑的内网IP,以及代理服务器的端口:
IMG_0233.PNG

第三步、开始抓包吧!
接着我们就可以用我们最熟悉的抓包软件抓包了!我这里使用 SmartSniff。在 Capture Filter(过滤器)中输入:
include:both:tcp:手机分配到的IP

开始抓包后,拿出我们的手机,访问网页(或者打开应用),这里我打开百度音乐,很快就抓取到了封包。

这里我分享一下抓取的结果。百度音乐iPhone客户端果然是有一个 rest 服务器,直接返回 json 数据(也可以返回 xml 数据)。这样的接口一般来说比较长久,可以放心使用。

测试下面的接口时,大家可以指定输出为 xml 格式,方便在浏览器中查看。

搜索建议:
http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.suggestion&query=%E7%AB%A5&format=json&from=ios&version=2.1.1
query: 关键字
format: json/xml

新歌榜:
http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=1&format=json&offset=0&size=50&from=ios&version=2.1.1
offset: 结果偏移(50表示从第50首歌曲开始)
size: 获取多少首歌曲

热歌榜:
http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=2&format=json&offset=0&size=50&from=ios&version=2.1.1

歌手榜:

http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.billboard.billList&type=3&format=xml&offset=0&size=50&from=ios&version=2.1.1

搜索歌曲:
http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common&query=%E7%AB%A5%E5%B9%B4&page_size=500&page_no=1&format=json&from=ios&version=2.1.1
query: 关键字
page_size: 每页数量
page_no: 当前页码

评分

参与人数 6专家分 +300 银币 +361 收起 理由
dragon5 + 1 很给力!
满月星光 + 30 太强大了,看了你不少的东西,都是经典呀
AdGame + 10 赞一个!
shufu + 10 神马都是浮云 89楼.你懂的...
蒹葭 + 10 不错~~不过怎么样生成音乐文件地址哪?
Jacen.He + 300 + 300 很给力!

查看全部评分

最新评论

coder 发表于 2012-11-7 21:46:30

有意思

有意思
winner 发表于 2012-11-7 22:04:05

cc.....

cc.....
ljtnine 发表于 2012-11-7 22:08:56

感谢分享

感谢分享
winner 发表于 2012-11-7 22:13:53

rest 是好东西

rest 是好东西
aiwen 发表于 2012-11-7 22:23:02

学习一下!

学习一下!
slowhand 发表于 2012-11-7 22:26:42

果断占位,向楼主学习

果断占位,向楼主学习
MMiao79 发表于 2012-11-7 23:35:58

{:2_33:} 这个方法确实很不错啊!谢谢提供思路!


这个方法确实很不错啊!谢谢提供思路!
sphawkcn 发表于 2012-11-7 23:37:33

不错哦,终于看到论坛有人开始这么做了。

不错哦,终于看到论坛有人开始这么做了。
落叶人生 发表于 2012-11-8 00:02:45

值得借鉴

值得借鉴
xudhrh 发表于 2012-11-8 00:06:41

这个好

这个好
我是老废 发表于 2012-11-8 00:31:32

{:)} 特地来学习啊

  特地来学习啊
fyy 发表于 2012-11-8 00:33:07

又来学习新技术了

又来学习新技术了
lzj_ykds 发表于 2012-11-8 08:32:04

标记一下

标记一下
lihui 发表于 2012-11-8 08:38:58

很有学习的必要

很有学习的必要
nvt303 发表于 2012-11-8 08:52:52

安卓系统的路过,学习给力的抓包。

安卓系统的路过,学习给力的抓包。
zhoubujin 发表于 2012-11-8 09:35:51

有意思


有意思
x876526966 发表于 2012-11-8 09:39:54

{;P}

wisefox 发表于 2012-11-8 10:53:19

感谢老大分享

感谢老大分享

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-11-21 16:17 , Processed in 0.093750 second(s), 25 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表