python安卓手机爬虫_python爬虫实战之爬取安卓apk

本文介绍了如何使用Python爬虫从应用宝上下载安卓APK。通过构造URL并设置User-Agent,获取apk展示页面,利用lxml库解析HTML,提取下载链接,最后保存apk到本地。这个简单的例子展示了批量下载APK的基本步骤。
摘要由CSDN通过智能技术生成

当前市面上有大量的应用市场,这些应用市场作为各个安卓开发者的分发渠道,占据着重要的位置。如果我们需要批量下载apk用于研究,那么就需要用到爬虫技术,这里仅仅介绍一个简单的例子,即爬取应用宝上的apk。爬取apk首先需要找到该apk的展示页面,比如应用宝上的QQ下载页面,http://sj.qq.com/myapp/detail.htm?apkName=com.tencent.mobileqq,可以看出,参数是apkName,那么你只要往里面传apk包名即可拼接出整个链接。page_url = "http://android.myapp.com/myapp/detail.htm?apkName=" + pn

headers = {'User-Agent': "AndroidDownloadManager/4.1.1 (Linux; U; Android 4.1.1; Nexus S Build/JRO03E)"}

resp = requests.get(page_url, headers=headers, timeout=30)

接下来,最关键的就是要解析resp了。python生态圈有很多lib能够解析HTTP请求的相应,这里我使用lxml,该组件的用法,大家可以自行百度。root = etree.HTML(resp.text)

elem = root.xpath("//a[@class='det-down-btn']")

download_url = None if None is elem or len(elem) == 0 else elem[0].attrib["data-apkurl"]

这样,就获得了下载url,类似的我们可以请求该链接,即可获得apk文件。大家使用浏览器手动下载,会发现下载的apk名字里面包含了包名和版本号以及其他信息。我这里也采用类似的策略来命名下载的apk。import urlparse

import os

o = urlparse.urlparse(download_url)

filename = urlparse.parse_qs(o.query, True)['fsname'][0]

if not os.path.exists(filename):

print 'download...', filename

resp = requests.get(download_url, headers=headers, timeout=30)

with open(filename, 'wb') as fp:

fp.write(resp.content)

这样我们就能把apk保存到本地了。

以上就是最简单的apk下载爬虫了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值