日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python批量下载apk

發布時間:2024/1/1 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python批量下载apk 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 3.6
主要庫:
openpyxl:對excel文件進行讀、寫;
requests:下載文件

從excel中取出下載鏈接,通過requests.head(url)得到頭信息,過濾非apk文件或大于100.00M的文件(可按需修改),再利用requests下載文件。

import openpyxl import re import requests import os.path from sys import argv from openpyxl import Workbook from datetime import datetimeurl = '' count = 0def download_apk(num, url):"""下載文件:param url:下載鏈接:param num:索引值"""global countsucceed = 'Succeed'failure = 'Failure'print('第' + str(num) + '條url:\n' + url)filename = os.path.basename(url)filename = filename.split('?')[0]response = requests.head(url)filesize = round(float(response.headers['Content-Length']) / 1048576, 2)apk_format = 'application/vnd.android.package-archive'# 過濾非zip文件或大于100.00M的文件# TODO 可按需修改if response.headers['Content-Type'] == apk_format and filesize < 100.00:print('文件類型:' + response.headers['Content-Type'] + "\n" +'文件大小:' + str(filesize) + 'M' + "\n" +'文件名:' + str(filename))# 下載文件headers = {'User-Agent': 'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M032 Build/IML74K) ''AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30','Connection': 'keep-alive', }file = requests.get(url, headers=headers, timeout=10)with open(filename, 'wb') as apk:apk.write(file.content)print(succeed + "\n")count += 1# 返回內容dicts = [url, succeed, filename]return dictselse:print('文件類型:' + response.headers['Content-Type'] + "\n" +'文件大小:' + str(filesize) + 'M' + "\n" +failure + "\n")dicts = [url, failure, failure]return dictsdef deal_excel(path):"""從Excel中獲取下載鏈接:param path: 表格的絕對路徑"""global urlstart = datetime.now()wb = openpyxl.load_workbook(path)table = wb.get_sheet_by_name('Sheet1')max_row = table.max_rowprint('共' + str(max_row) + '條url.\n')wb2 = Workbook()ws = wb2.activefor row in range(1, max_row + 1):url = table.cell(row=row, column=1).value# 檢查http協議頭if not re.match(r'^https?:/{2}\w.+$', url):url = "http://" + urldicts = download_apk(row, url)# 新建Excel表,記錄原始地址、下載結果和文件名ws['A' + str(row)] = dicts[0]ws['B' + str(row)] = dicts[1]ws['C' + str(row)] = dicts[2]wb2.save('record.xlsx')print('共' + str(max_row) + '條下載鏈接。\n成功:' + str(count) + '\n失敗:' + str(max_row - count))end = datetime.now() - startprint('用時:' + str(end))if __name__ == '__main__':deal_excel(argv[1])

運行截圖:

總結

以上是生活随笔為你收集整理的Python批量下载apk的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。