Python硒-如何从Firefox下载将文件存储在s3上

问题描述

我在aws lambda和firefox驱动程序上使用python 3.8 +硒包

那我该如何在硒中设置firefox配置文件的下载位置?

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.downloads.folderList",2)
profile.set_preference("browser.downloads.manager.showWhenStarting",False)
profile.set_preference("browser.downloads.dir","HOW TO SET S3 PATH HERE")

如果没有,那么实现它的最佳方法是什么

解决方法

Selenium对AWS或S3一无所知。您可以将文件下载到本地文件系统,然后使用boto3上载到S3。例如:

profile.set_preference("browser.downloads.dir",DOWNLOAD_DIRECTORY)

# when Selenium run is complete,create a gzipped tar file of downloads
tarball = "{0}.tar.gz".format(DOWNLOAD_DIRECTORY)
with tarfile.open(tarball,"w:gz") as f:
    f.add(DOWNLOAD_DIRECTORY)
    client = boto3.client("s3")
    try:
        client.upload_file(tarball,S3_BUCKET,s3_key_name)
    except ClientError as e:
        log.error(e)