selenium docker 请求网站数据
时间: 2024-06-08 13:07:04 浏览: 165
要在 Docker 中使用 Selenium 请求网站数据,您可以按照以下步骤操作:
1. 在 Docker 中安装 Selenium 和所需的浏览器驱动。例如,如果您要使用 Chrome 浏览器,可以安装 Chromedriver。
2. 编写一个 Python 脚本,使用 Selenium 和所需的浏览器驱动程序来自动化网站浏览,获取所需数据。
3. 将 Python 脚本和所需的依赖项放入 Docker 镜像中。
4. 运行 Docker 容器,并在容器中执行 Python 脚本。
下面是一个简单的示例,演示如何在 Docker 中使用 Selenium 获取 Google 搜索结果页面的 HTML 内容:
1. 安装 Selenium 和 Chromedriver:
```
FROM python:3.7-slim
RUN apt-get update && apt-get install -y \
wget \
unzip \
xvfb \
libxi6 \
libgconf-2-4
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
RUN apt-get update && apt-get install -y google-chrome-stable
RUN wget https://chromedriver.storage.googleapis.com/81.0.4044.138/chromedriver_linux64.zip
RUN unzip chromedriver_linux64.zip
RUN mv chromedriver /usr/bin/chromedriver
RUN chown root:root /usr/bin/chromedriver
RUN chmod +x /usr/bin/chromedriver
```
2. 编写一个 Python 脚本,使用 Selenium 和 Chromedriver 来自动化浏览器操作:
```
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(options=options)
driver.get('https://www.google.com/search?q=test')
html = driver.page_source
driver.quit()
print(html)
```
3. 将 Python 脚本和依赖项放入 Docker 镜像中:
```
FROM python:3.7-slim
RUN apt-get update && apt-get install -y \
wget \
unzip \
xvfb \
libxi6 \
libgconf-2-4
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
RUN apt-get update && apt-get install -y google-chrome-stable
RUN wget https://chromedriver.storage.googleapis.com/81.0.4044.138/chromedriver_linux64.zip
RUN unzip chromedriver_linux64.zip
RUN mv chromedriver /usr/bin/chromedriver
RUN chown root:root /usr/bin/chromedriver
RUN chmod +x /usr/bin/chromedriver
COPY requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
COPY script.py /app/script.py
WORKDIR /app
CMD ["python", "script.py"]
```
4. 运行 Docker 容器:
```
docker build -t myapp .
docker run -it myapp
```
这将启动 Docker 容器并运行 Python 脚本。在容器中执行完 Python 脚本后,将返回 Google 搜索结果页面的 HTML 内容。
阅读全文