有没有人爬虫过 APP???求赐教

2015-12-08 14:26:43 +08:00
 liubaobei199209

本人是一学生,现在导师让我用 Python 爬 APP ,没什么基础,有做过的或者会的帮帮我,感谢好人!

2467 次点击
所在节点    问与答
9 条回复
Daniel65536
2015-12-08 15:18:32 +08:00
1. App 一般流行用 RESTful 接口获取数据,所以拿个代理找出 RESTful 接口就好
2. 拿到接口直接无脑循环就能爬完
zqhong
2015-12-08 16:07:16 +08:00
使用 Fiddler , Tools -> Connections -> Allow remote computers to connect (打勾)。

接着重启 Fiddler

手机设置代理,打开你的 app ,开始愉快的抓包吧。
zqhong
2015-12-08 16:09:18 +08:00
@zqhong Tools -> Fidder Options -> Connections -> Allow remote computers to connect (打勾)

漏了一个。其他的参考楼上,请请求了哪些参数,返回了哪些数据。预祝成功
liubaobei199209
2015-12-09 23:34:02 +08:00
@zqhong 我现在是要怕豌豆荚下每个分类下的前 100 个应用的作者几简介信息,用抓包的话那不是要手动操作无数次吗?
liubaobei199209
2015-12-09 23:37:43 +08:00
@Daniel65536 你说的用代理找 RESTful 接口,具体怎么操作呢?我还是个没基础没经验的学生?求赐教,谢谢了
zqhong
2015-12-10 00:12:29 +08:00
@liubaobei199209 你用豌豆荚,点击相关分类,再按照热度排序。这个时候看抓到了什么数据。这里假设获取应用列表接口的名称叫 get_list ,可能会有几个参数: type (应用类型)、 num (获取条目个数)、 orderby (排序规则)。返回的数据应该会有 应用的 id

接下来,应该会有一个获取具体条目的接口,这里假设叫 get_item ,用上面获取的应用 id ,就可以获取某个应用具体的信息。获取作者信息这些东西自己探索吧。

我没做过测试,这些东西也只是猜测。
Daniel65536
2015-12-10 01:19:20 +08:00
@liubaobei199209 拿 Fiddler 之类的软件开个代理,把手机的代理设置上去,然后你就能看到那个程序到底访问了那些地址,比如访问了 http//wandoujia.com/api/v1/topList 之类的地址,然后自己拿 python 写模拟手机访问那个地址就好。
liubaobei199209
2015-12-10 20:21:41 +08:00
@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
我为什么就爬不出来?是不是正则表达式写错了,正确的是怎样的?
liubaobei199209
2015-12-10 20:25:02 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/241985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX