文中的文本及图片来自互联网,仅作学习培训 、沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决 。

下列文章内容来自IT共享世家 ,创作者IT共享者

序言

小米应用店铺给客户发觉最好是的安卓软件游戏,可以信赖 ,但是要下载应用要一个一个地检索太麻烦了。并且速率并不是迅速。

今日用线程同步抓取小米应用店铺的手机游戏控制模块 。迅速获得 。

 

二、项目目标

总体目标 :运用归类 - 聊天社交 运用名字, 运用连接,显示信息在控制面板供客户免费下载。

 

三、涉及到的库和网址

1 、网站地址:百度搜 - 小米应用店铺 ,进到官方网站。

2 、涉及到的库:requests、threading 、queue 、json、time

3、手机软件:PyCharm

 

四 、项目分析报告

1、确定是不是为动态性载入 。

根据网页页面部分更新 , 鼠标右键查询网页源代码,关键字搜索未找到 。判断此网站为动态性载入网址,必须抓取互联网数据文件剖析。

2、应用chrome浏览器 ,F12抓取互联网数据文件 。

1)抓取回到json数据信息的URL详细地址(Headers中的Request URL)。

http://app。mi 。com/categotyAllListApi?page={}&categoryId=2&pageSize=30

 

2)查询并剖析查看主要参数(headers中的Query String Parameters) 。

page: 1 categoryId: 2 pageSize: 30

 

发觉仅有page再变,0 1 2 3 。。 。 。。 。 ,那样大家就可以根据操纵page的直拼凑好几个回到json数据信息的URL详细地址。

 

五 、项目实施

1、大家界定一个class类承继object ,随后界定init方式承继self,再界定一个主函数main承继self。提前准备导进库,url地址和请求头headers 。

import requests from threading import Thread from queue import Queue import json import time class XiaomiSpider(object): def __init__(self): self。headers = {'User-Agent':'Mozilla/5。0'} self 。url = 'http://app。mi。com/categotyAllListApi?page={}&categoryId=15&pageSize=30' def main(self): pass if __name__ == '__main__': imageSpider = XiaomiSpider() imageSpider 。main()

 

 

2、界定序列 ,用于储放URL详细地址

self 。url_queue = Queue()

 

 

3 、URL入序列

def url_in(self): # 拼凑好几个URL详细地址,随后put()到序列中 for i in range(67): self。url。format((str(i))) self 。url_queue。put(self。url)

 

 

4、界定进程恶性事件涵数get_page(要求数据信息)

defget_page(self): # 先get()URL详细地址,发要求 while True: # 当序列不以空时,获得url地址 if not self 。url_queue。empty(): url = self。url_queue 。get() html = requests。get(url,headers=self。headers) 。text self。parse_page(html) else: break

 

 

5、界定涵数parse_page 分析json控制模块,获取运用名字,运用连接內容。

# 解析函数 def parse_page(self,html): app_json = json 。loads(html) for app in app_json['data']: # 运用名字 name = app['displayName'] # 运用连接 link = 'http://app 。mi。com/details?id={}'。format(app['packageName']) d = { '名字' : name,'连接' : link } print(d)

 

 

6 、main方式 , 界定t_list = [] 储放全部进程的目录 。启用get_page线程同步抓取。

def main(self): self。url_in() # 储放全部进程的目录 t_list = [] for i in range(10): t = Thread(target=self 。get_page) t。start() t_list。append(t)

 

 

7 、for循环解析xml目录,统一收购进程 。

# 统一收购进程for p in t_list: p。join()

 

 

8、统计分析一下实行時间。

start = time 。time() spider = XiaomiSpider() spider。main() end = time。time() print('实行時间:% 。2f' % (end-start))

 

 

六、实际效果展现

1 、运作程序流程 。点一下运作,将游戏的名字 ,下载地址 ,实行時间,显示信息在控制面板。

 

2、点一下蓝色的网址能够立即去到下载网页下载软件,如下图所显示。

文章来源于网络 ,如有侵权请联系站长QQ61910465删除
本文版权归qu快排seo www.sEoguRuBlog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ√61910465