本人是一学生,现在导师让我用 Python 爬 APP ,没什么基础,有做过的或者会的帮帮我,感谢好人!
1
Daniel65536 2015-12-08 15:18:32 +08:00
1. App 一般流行用 RESTful 接口获取数据,所以拿个代理找出 RESTful 接口就好
2. 拿到接口直接无脑循环就能爬完 |
2
zqhong 2015-12-08 16:07:16 +08:00
使用 Fiddler , Tools -> Connections -> Allow remote computers to connect (打勾)。
接着重启 Fiddler 手机设置代理,打开你的 app ,开始愉快的抓包吧。 |
3
zqhong 2015-12-08 16:09:18 +08:00
@zqhong Tools -> Fidder Options -> Connections -> Allow remote computers to connect (打勾)
漏了一个。其他的参考楼上,请请求了哪些参数,返回了哪些数据。预祝成功 |
4
liubaobei199209 OP @zqhong 我现在是要怕豌豆荚下每个分类下的前 100 个应用的作者几简介信息,用抓包的话那不是要手动操作无数次吗?
|
5
liubaobei199209 OP @Daniel65536 你说的用代理找 RESTful 接口,具体怎么操作呢?我还是个没基础没经验的学生?求赐教,谢谢了
|
6
zqhong 2015-12-10 00:12:29 +08:00
@liubaobei199209 你用豌豆荚,点击相关分类,再按照热度排序。这个时候看抓到了什么数据。这里假设获取应用列表接口的名称叫 get_list ,可能会有几个参数: type (应用类型)、 num (获取条目个数)、 orderby (排序规则)。返回的数据应该会有 应用的 id
接下来,应该会有一个获取具体条目的接口,这里假设叫 get_item ,用上面获取的应用 id ,就可以获取某个应用具体的信息。获取作者信息这些东西自己探索吧。 我没做过测试,这些东西也只是猜测。 |
7
Daniel65536 2015-12-10 01:19:20 +08:00
@liubaobei199209 拿 Fiddler 之类的软件开个代理,把手机的代理设置上去,然后你就能看到那个程序到底访问了那些地址,比如访问了 http//wandoujia.com/api/v1/topList 之类的地址,然后自己拿 python 写模拟手机访问那个地址就好。
|
8
liubaobei199209 OP @Daniel65536 我抓的下载应用是我小,米手机上的应用商店,这是抓的一个地址 http://t1.market.xiaomi.com/thumbnail/webp/l320q80/AppStore/00766c5d9bd20437923ee91393f53ebc9f6525b76 ,我要爬这个 APP 下的 URL 。然后 python 代码如下:
# coding:utf-8 import re import requests r = requests.get('http://t1.market.xiaomi.com/thumbnail/webp/l320q80/AppStore/') data = r.text # 利用正则查找所有连接 link_list =re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')" ,data) for url in link_list: print url 我为什么就爬不出来?是不是正则表达式写错了,正确的是怎样的? |
9
liubaobei199209 OP |