需求
1.有一个url地址,在网页中输入,就可以下载apk/ipa等文件
2.数据量太多,人工操作,不仅要大量点点点,还浪费时间
3.使用python+webdriver实现自动化读取excel中的数据并自动下载文件
实现过程
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import xlrd
# url地址是拼接的,分为2段,第一段是固定值,作为全局参数
url1 = "https://txdeteyy.ijiami.cn:4442/"
def open_browser(urls):
driver = webdriver.Chrome()
driver.maximize_window() # 最大化打开chrome
driver.get("https://www.baidu.com/")
# 使用js打开新窗口
js = 'window.open(url)'
driver.execute_script(js)
handles = driver.window_handles
# 切换到新窗口
driver.switch_to.window(handles[-1])
time.sleep(2)
driver.get(url1 + urls) # 完成url地址,注意此处的值类型需要保持一致
driver.get("https://weibo.com/")
# 防止一个文件还未下载完成,此处加上强制等待
time.sleep(50)
# 不能关闭浏览器,关闭后,下载会停止
# driver.close()
# driver.quit()
# 读取excel数据
def read_excel_app():
# 打开文件
workbook = xlrd.open_workbook(r'E:\\检测样本app共享\\tx_apks_导出\\more_apps.xls')
# 获取所有sheet表
print(workbook.sheet_names())
# 方式一:获取所需sheet表
# sheet_name1=workbook.sheet_names()[0]
# 方式二:获取所需sheet表
sheet1 = workbook.sheet_by_name('Sheet1')
# 获取第一列内容
cols = sheet1.col_values(0)
# 获取第3行内容
rows = sheet1.row_values(1)
# app_data = sheet1.cell(r, c).value
# 获取单元格内容的三种方法
print(sheet1.cell(0,0).value) # cell(行,列)
list_app = []
for i in range(sheet1.nrows):
app_data = sheet1.cell(i, 0).value
print("我现在读取excel中的APP是:", app_data) # 返回的是单个数据,str格式
open_browser(app_data)
list_app.append(app_data)
# print(list_app)
return app_data
# return list_app
# 调用函数
a = read_excel_app()
可自动配置脚本后台静默执行
数据准备
excel中提前准备好的第二段数据
执行结果
下载完成的文件,默认在C盘,若需改动,则可配置chrome-dr