分享好友 最新动态首页 最新动态分类 切换频道
python爬虫app下载_Python爬虫之抓取APP下载链接
2024-12-25 11:56

前言

python爬虫app下载_Python爬虫之抓取APP下载链接

最近有个需求是批量下载安卓APP。显然,刀耕火种用手点是不科学的。于是尝试用Python写了一个半自动化的脚本。所谓半自动化,就是把下载链接批量抓取下来,然后一起贴到迅雷里进行下载,这样可以快速批量下载。

准备工作Python 2.7.11:下载python

Pycharm:下载Pycharm

其中python2和python3目前同步发行,我这里使用的是python2作为环境。Pycharm是一款比较高效的Python IDE,但是需要付费。

基本思路首先我们的目标网站:安卓市场

点击【应用】,进入我们的关键页面

安卓市场.png跳转到应用界面后我们需要关注三个地方,下图红色方框标出

应用页面.png

首先关注地址栏的URL,再关注免费下载按钮,然后关注底端的翻页选项。点击“免费下载”按钮就会立即下载相应的APP,所以我们的思路就是拿到这个点击下载的连接,就可以直接下载APP了。

编写爬虫第一个需要解决的点:我们怎么拿到上面说的下载链接?这里不得不介绍下浏览器展示网页的基本原理。说简单点,浏览器是一个类似解析器的工具,它得到HTML等代码的时候会按照相应的规则解析渲染,从而我们能够看到页面。

这里我使用的是谷歌浏览器,对着页面右键,点击“检查”,可以看到网页原本的HTML代码

HTML代码.png看到眼花缭乱的HTML代码不用着急,谷歌浏览器的审查元素有一个好用的小功能,可以帮我们定位页面控件对应的HTML代码位置

定位HTML代码.png

如上图所示,点击上方矩形框中的小箭头,点击页面对应的位置,在右边的HTML代码中就会自动定位并高亮。接下来我们定位到下载按钮对应的HTML代码

下载按钮对应HTML.png

首先使用python拿到整个页面的HTML,很简单,使用“requests.get(url)”,url填入相应网址即可。

requestHTML.png接着,在抓取页面关键信息的时候,采取“先抓大、再抓小”的思路。可以看到一个页面有10个APP,在HTML代码中对应10个item

list_item.png

而每个 li 标签中,又包含各自APP的各个属性(名称、下载链接等)。所以第一步,我们将这10个 li 标签提取出来:def geteveryapp(self,source):

everyapp = re.findall('(

)',source,re.S)        #everyapp2 = re.findall('(
.*?
)',everyapp,re.S)

return everyapp```

这里用到了简单的正则表达式知识,这里提供一个链接:[正则表达式入门](http://www.oschina.net/question/12_9507)

* 提取 li 标签中的下载链接

```codedef getinfo(self,eachclass):

info = {}

str1 = str(re.search('', eachclass).group(0))

app_url = re.search('"(.*?)"', str1).group(1)

appdown_url = app_url.replace('appinfo', 'appdown')

info['app_url'] = appdown_url

print appdown_url        return info接下来需要说的难点是翻页,点击下方的翻页按钮后我们可以看到地址栏发生了如下变化

原始URL.png

带ID的URL.png

豁然开朗,我们可以在每次的请求中替换URL中对应的id值实现翻页。def changepage(self,url,total_page):

now_page = int(re.search('pi=(d)', url).group(1))

page_group = []        for i in range(now_page,total_page+1):

link = re.sub('pi=d','pi=%s'%i,url,re.S)

page_group.append(link)        return page_group

爬虫效果关键位置说完了,我们先看下最后爬虫的效果

爬取结果.png

在TXT文件中保存结果如下

最终结果.png

直接复制进迅雷就可以批量高速下载了。

附上全部代码#-*_coding:utf8-*-import requestsimport reimport sys

reload(sys)

sys.setdefaultencoding("utf-8")class spider(object):

def __init__(self):

print u'开始爬取内容'

def getsource(self,url):

html = requests.get(url)        return html.text    def changepage(self,url,total_page):

now_page = int(re.search('pi=(d)', url).group(1))

page_group = []        for i in range(now_page,total_page+1):

link = re.sub('pi=d','pi=%s'%i,url,re.S)

page_group.append(link)        return page_group    def geteveryapp(self,source):

everyapp = re.findall('(

)',source,re.S)        return everyapp    def getinfo(self,eachclass):

info = {}

str1 = str(re.search('', eachclass).group(0))

app_url = re.search('"(.*?)"', str1).group(1)

appdown_url = app_url.replace('appinfo', 'appdown')

info['app_url'] = appdown_url        print appdown_url        return info    def saveinfo(self,classinfo):

= open('info.txt','a')

str2 "http://apk.hiapk.com"

for each in classinfo:

f.write(str2)

f.writelines(each['app_url'] ' ')

f.close()if __name__ ='__main__':

appinfo = []

url 'http://apk.hiapk.com/apps/MediaAndVideo?sort=5&pi=1'

appurl = spider()

all_links = appurl.changepage(url, 5)    for link in all_links:        print u'正在处理页面+ link

html = appurl.getsource(link)

every_app = appurl.geteveryapp(html)        for each in every_app:

info = appurl.getinfo(each)

appinfo.append(info)

appurl.saveinfo(appinfo)

总结

选取的目标网页相对结构清晰简单,这是一个比较基本的爬虫。代码写的比较乱,见谅。

作者:CaptainXero

最新文章
数据说话 应子分析梦幻口袋版的优势
  梦幻口袋iOS版正式上线了,想必还有很多玩家梦幻口袋版不太了解,下面就请跟随应子一起来仔细探究梦幻口袋版的玩家对玩家角色成长到底有多少的帮助。(再次提醒:iOS版本用户订阅虽然要先花费6块钱,但是订阅成功就能立刻获得600精力(
推荐6款能帮忙写论文的AI网站工具集合
以下是 6 款能帮忙写论文的 AI 网站工具集合:功能强大且全面的 AI 论文写作助手,专为学术研究者设计。能在 10 分钟内产出高达 3 万字的高质量论文初稿,并提供详细的论文大纲,还允许用户上传资料进行 “材料投喂” 以优化内容,其核心功
薄膜穿刺试验仪:精准量化薄膜性能的必备工具
一、引言在包装材料科学领域,薄膜穿刺性能是衡量其质量的关键指标之一。为确保薄膜在实际应用中能够抵御各类潜在穿刺源的挑战,济南三泉中石推出了CCY-02型薄膜穿刺试验仪,该仪器专为精准量化薄膜穿刺力而设计。二、仪器特点与优势CCY-02
手机百度seo快速排名,手机端百度seo
移动友好的网站设计:确保您的网站在移动设备上能够良好展示和快速加载。移动用户对于速度和用户体验有更高的要求,优化网站结构和响应式设计是提高排名的第一步。优化网站的加载速度:移动设备上的用户更加注重速度体验,因此优化网站的加
深化公安交管“放管服”改革10项便民利民服务措施实施细则
一、推行小型汽车驾驶证全国“一证通考”一是明确实施范围。小型汽车驾驶证全国“一证通考”自2019年6月1日起全国统一实施,适用于内地居民和取得港澳台居民居住证的港澳台居民初次申领、增驾小型汽车驾驶证(准驾车型为C类),但不包括持
银行柜面年终个人工作总结(最新6篇)
作为一名银行柜员我也需要把工作做的更加到位,这给我的感觉是很好的,我会认真的去做好自己的本职,下面是小编为大家整理的银行柜面年终个人工作总结(最新6篇),希望大家阅读之后有所收获。转眼间20xx年的年末就到来了,前段时间整日忙
永劫无间提升等级有奖励么,永劫无间通行证一级多少金块
永劫无间无常赛季通行证奖励内容一览购买通行证之后就能获取到无畏的精品时装【行空裘】和华贵靡丽的崔三娘极品时装【巨鲸客】。 等到通行证115级就能解锁顾清寒典雅矜贵的极品时装【藏雨阁主】。 还有极品武器太刀皮肤金一文字。 永劫无间
成品网站1.1.719的模块解析-网友:从支付到展示-一个不缺!
成品网站1.1.719的模块解析,网友:从支付到展示,一个不缺!以其灵活性和高效性,成为了企业和个人建站领域的热门选择。这款工具不仅降低了建站的技术门槛,还通过丰富的功能模块,满足了多种场景的使用需求。不少网友表示:“成品网站1.1
百度推广账户赚钱吗(百度推广账户赚钱吗安全吗)
大家好,今天小编关注到一个比较有意思的话题,就是关于百度推广账户赚钱吗的问题,于是小编就整理了5个相关介绍百度推广账户赚钱吗的解答,让我们一起看看吧。百度推广开户多少钱,百度开户返点又是什么意思?有一个关键词,我百度竞价推
小红书聚光平台推广流程
小红书聚光平台推广流程广告开户,是在小红书聚光平台进行广告投放的第一步。我们公司提供广告开户服务,您只需联系我们,我们将为您提供详细的开户流程和操作指导,解答您遇到的问题。通过广告开户,您可以轻松进入小红书聚光平台,开启广
相关文章
推荐文章
发表评论
0评