前两天帮一个朋友写了个自动下载app的脚本,发现了一个问题:
在网上找的配置谷歌浏览器下载文件的代码中:
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}
大多数人都是使用这样的配置,但是由于我也不知道什么东西的改版导致这个方法行不通,需要自己选择下载路径。
后来找到了另外一个方法:
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory':os.getcwd()}
这种方法指定的路径是当前工作的路径,这和我们的需求不一样,后来自己试了一个方法,能行得通,贴上代码:
prefs = {'profile.default_content_settings.popups': 0,
'download.default_directory': r'D:\demo\02.28\下载'
}
在表示windows路径时,前面加r表示转义,下面贴上自动下载app的全部代码:
from selenium import webdriver
from time import sleep
import os
import glob
paths = glob.glob(r"D:\demo\02.28\应用分类\*.txt") # 这是路径,自己改
for path in paths:
f = open(path, "r", encoding='utf-8')
name = path.split('应用分类\\')
na = name[-1].split('.') # na[0]为分类名字
path = 'D:\\demo\\02.28\\下载\\{}'.format(na[0]) # 下载路径 记得更改
path = path.strip()
path = path.rstrip("\\")
isExists = os.path.exists(path) # 创建目录及判断目录是否存在
if not isExists:
os.makedirs(path)
print(path + ' 创建成功')
else:
print(path + ' 目录已存在')
c = 1
for i in f:
print('正在下载分类:{}中的第{}个应用'.format(na[0],c))
link = i.strip()
if link == '':
pass
else:
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0,
'download.default_directory': r'D:\demo\02.28\下载\{}'.format(na[0])} # 下载路径
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get(link)
c += 1
sleep(30) # 这个是浏览器关闭的时间,自行调节,时间一到就会关闭浏览器,如果时间过长,会堵塞运行,自己掂量
driver.quit()