如何在docker selenium中设置下载目录

Ser*_*nül 5 python selenium web-scraping selenium-chromedriver docker

我有一个问题。

\n

问题是,\xc4\xb1 正在使用 Python 开发一个项目。该项目是网络抓取。我正在使用硒库。

\n

使用 Selenium 库,我单击一个按钮并下载相关文件(xlsx 等)。\n检查以下示例代码:

\n
    driver = webdriver.Remote('http://selenium:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME)\n    driver.get("link")\n    cdate=time.strftime('%Y%m%d')  \n    print(cdate)\n    while True:\n        try:\n            wait(driver, 1).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='{}']".format(cdate)))).click()\n            print("Found, succes!")\n            time.sleep(3)\n            break\n        except:\n            f = '%Y%m%d'\n            cdate = (datetime.strptime(cdate, f) - timedelta(days=1)).strftime(f)\n            print("Not match")\n            time.sleep(3)\n            print(str(cdate))\n
Run Code Online (Sandbox Code Playgroud)\n

当我尝试对自己的代码进行 Docker 化时,它成功了。我用下面的代码进入了相关的地方。我在下面的目录中找到了下载的文件。

\n
docker exec -it <container name> bash\ncd /Downloads\nll Sample.xlsx\n
Run Code Online (Sandbox Code Playgroud)\n

我需要更改下载目录。当docker容器启动后,我想将其下载到我自己的电脑上。(像这样:c:\\桌面...)

\n

Docker-Compose.yaml

\n
    version: '3'\n\nservices:\n    selenium:\n        image: selenium/standalone-chrome\n        ports: \n        - 4444:4444\n        restart: always\n    app:\n        build:\n            context: .\n        volumes: \n        - ./app:/app\n        command: sh -c "python3 dev2.py"\n        depends_on: \n            - selenium \n
Run Code Online (Sandbox Code Playgroud)\n

Dockerfile:

\n
FROM python:3.7-alpine\n\nENV PYTHONUNBUFFERED 1\nENV DISPLAY=:99\n\nCOPY ./requirements.txt /requirements.txt\nRUN pip install -r /requirements.txt\n\nRUN mkdir /app\nCOPY ./app /app\nWORKDIR /app\n
Run Code Online (Sandbox Code Playgroud)\n

Ale*_* R. 4

您可以将一个卷添加到您的 selenium 容器中,该容器会将您的主机映射到容器文件夹,以便您的卷如下所示:

selenium:
    image: selenium/standalone-chrome
    ports: 
    - 4444:4444
    restart: always
    volumes: 
    - /path/to/host/folder:/Downloads
Run Code Online (Sandbox Code Playgroud)

因此,您的容器进程将放入的所有文件/Downloads都会出现在/path/to/host/folder您的主机中。