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))\nRun Code Online (Sandbox Code Playgroud)\n当我尝试对自己的代码进行 Docker 化时,它成功了。我用下面的代码进入了相关的地方。我在下面的目录中找到了下载的文件。
\ndocker exec -it <container name> bash\ncd /Downloads\nll Sample.xlsx\nRun Code Online (Sandbox Code Playgroud)\n我需要更改下载目录。当docker容器启动后,我想将其下载到我自己的电脑上。(像这样:c:\\桌面...)
\nDocker-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 \nRun Code Online (Sandbox Code Playgroud)\nDockerfile:
\nFROM 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\nRun Code Online (Sandbox Code Playgroud)\n
您可以将一个卷添加到您的 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您的主机中。
| 归档时间: |
|
| 查看次数: |
4031 次 |
| 最近记录: |