【背景】
用selenium写爬虫的一大目的往往是自动获取资源,但默认状态下webdriver在下载付件时会要求用户点击允许,然后还要手动选择保存在哪个文件夹,这样就起不到自动下载的目的了。今天来介绍如何允许webdriver自动保存,并且预设存储路径的方法。
【解决方法】
driver = webdriver.Chrome()
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {
'cmd': 'Page.setDownloadBehavior', 'params': {
'behavior': 'allow', 'downloadPath': save_path}}
driver.execute("send_command", params)
第一行声明一个chrome的webdriver实例;
第二行自定义send_command命令;
第三行构造参数,参数的内容就是允许自动下载并预设存储路径;
第四行调用自定义命令send_command并传params,实现存储路径的预设。
【测试结果】
下载文件时不会要求用户点击确认,并且文件会自动保存到预设的save_path中。