亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

用python批量下載apk

瀏覽:3日期:2022-07-01 08:41:10
案例故事:

之前我們做Android手機測試的時候,

市場部希望我們測試部進行Top 1000 app(排名前1000的app)的兼容性測試,以確保我們的手機是可以安裝并正常運行這么多好用的app,且市場部提供了某應用市場上的top 1000 的apk下載地址。

用python批量下載apk

如何實現快速批量地下載apk文件呢?

準備階段

以上excel里的的url分明是需要進行二次重定向的,因為其不是一個.apk結尾的鏈接,我們需要進行解析后再進行重定向。wget命令是不支持這url重定向解析的,所以不能采用。所以我們還是采用requests模塊來實現下載。

Python批處理腳本形式 單線程的寫法

記住批處理腳本的精髓:批量順序執行語句,由于批處理腳本形式只能實現單個apk的下載任務,我們使用requests模塊實現下載。單線程效率比較慢,必須等前一個apk下載完畢后,才會開始后一個apk的下載。

# coding=utf-8import osimport requestsimport openpyxlcurdir = os.getcwd() # 獲取當前路徑current work directoryheader = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 6.1 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36’}# 創建文件夾用于存放已經下載的apkif not os.path.exists('downloaded_apk'): os.system('mkdir downloaded_apk')# 逐行讀取excel里的下載地址urlexcel = openpyxl.load_workbook(’Top_1000_app.xlsx’) # 讀取excel里邊的內容table = excel.activerows = table.max_rowfor r in range(2, rows + 1): # 跟excel的第一行標題行無關,從第二行文字內容開始 apk_name = table.cell(row=r, column=2).value # 獲取app名字(中文) apk_url = table.cell(row=r, column=3).value # 獲取下載地址 save_path = os.path.join(curdir, 'downloaded_apk', '%s.apk' % apk_name) if not os.path.exists(save_path): # 避免二次下載 print('Downloading the %sth apk and will save to %s' % (r, save_path)) try: r = requests.get(apk_url, headers=header, allow_redirects=True, timeout=720) # 發起requests下載請求 status_code = r.status_code if (status_code == 200 or status_code == 206): with open(save_path, 'wb') as hf: hf.write(r.content) except: print('Error, can not download %s.apk' % apk_name) else: print('%s downloaded already!' % save_path)os.system('pause')Python面向對象類形式 多線程下載的寫法

準備階段

多線程一般效率快很多很多,多線程任務執行,一般是將apk下載任務放到Queue隊列里去,先進先出,然后只要隊列不是空隊列,就從隊列里邊取任務(q_job),并有10個線程同時進行,相對來說,理解上會較難一些些,但是掌握后,可以快速提高下載效率。

#coding=utf-8import osimport queueimport threadingimport requestsimport openpyxlcurdir = os.getcwd() #獲取當前路徑current work directoryheader = {’User-Agent’: ’Mozilla/5.0 (Windows NT 6.1 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36’}# 創建文件夾if not os.path.exists('downloaded_apk'): os.system('mkdir downloaded_apk')def download_single_apk(apk_url_str): ’’’下載單個apk文件’’’ apk_name, apk_url = apk_url_str.split(';') # print(apk_url) save_path = os.path.join(curdir, 'downloaded_apk', '%s.apk' % apk_name) if not os.path.exists(save_path): # 避免二次下載 print('Downloading %s' % (save_path)) try: r = requests.get(apk_url, headers=header, allow_redirects=True, timeout=720) # 發起requests下載請求 status_code = r.status_code if (status_code == 200 or status_code == 206): with open(save_path, 'wb') as hf: hf.write(r.content) except: print('Error, can not download %s.apk' % apk_name) else: print('%s downloaded already!' % save_path)# 批量下載的線程class DownLoadThread(threading.Thread): def __init__(self, q_job): self._q_job = q_job threading.Thread.__init__(self) def run(self): while True: if self._q_job.qsize() > 0: download_single_apk(self._q_job.get()) # 這是10個線程都運行這個下載函數 else: breakif __name__ == ’__main__’: # 初始化一個隊列 q = queue.Queue(0) # 逐行讀取excel里的url excel = openpyxl.load_workbook(’Top_1000_app.xlsx’) # 讀取excel里邊的內容 table = excel.active rows = table.max_row for r in range(2, rows + 1): # 跟excel的第一行標題行無關,從第二行文字內容開始做替換工作 apk_name = table.cell(row=r, column=2).value # 獲取app名字(中文) apk_url = table.cell(row=r, column=3).value # 獲取下載地址 temp_str = apk_name + ';' + apk_url # 不可以put列表進隊列,只能嘗試put字符串 q.put(temp_str) for i in range(10): # 開啟10個線程 DownLoadThread(q).start()本案例素材下載

點我下載

運行方式與效果

比如保存以上代碼為download_1000apk.py并放在桌面,建議python download_1000apk.py運行,當然也可以雙擊運行。運行效果如下:

用python批量下載apk

以上就是用python批量下載apk的詳細內容,更多關于python批量下載apk的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 免费观看好看的国产片 | 亚洲第一视频在线观看 | 国产91精品久久久久久 | 国产精品永久免费 | 久久er热在这里只有精品85 | 99成人国产精品视频 | 春水堂在线 | 国产亚洲一区二区三区在线观看 | 黄色片在线观看免费 | 91精品综合国产在线观看 | 精品亚洲成a人在线播放 | 青木玲中文字幕一区二区 | 韩国xxxxxxxx69 | 国产九九热视频 | 欧美黄色大片在线观看 | 成人免费在线观看网站 | 亚洲黄色免费网址 | 色片网站在线观看 | 国产香蕉在线 | 久草热视频在线 | 一级毛片影院 | 精品一区二区91 | 国产玖玖玖精品视频 | 欧美一级毛片在线播放 | 国产大尺度吃奶无遮无挡网 | 日本一级作爱片在线观看 | 欧美日韩国产不卡在线观看 | 黄视频福利| 亚洲九九精品 | 亚洲人欧洲日韩 | 一级成人 理伦片 | 免费播放aa在线视频成人 | 香蕉亚洲精品一区二区 | 国产v日韩v欧美v精品专区 | 国产久视频 | 国外精品视频在线观看免费 | 99re热视频这里只有精品5 | 国产在线欧美日韩精品一区二区 | 高清国产美女一级a毛片录 高清国产美女在线观看 | 国产欧美日韩精品一区二 | 国产一二三区精品 |