在没有浏览器的情况下使用Selenium进行网络爬取

问题描述

我想使用python模块Selenium通过jupyter笔记本进行网络抓取。 jupyter笔记本在没有任何网络浏览器的docker容器中运行。我希望能够分发笔记本,以便其他用户可以复制网络抓取。笔记本计算机在通用的jupyter实验室容器上运行,因此无法更新该容器以包含浏览器。

我尝试了很多事情:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

这:

!pip install chromedriver-binary
from selenium import webdriver
import chromedriver_binary  # Adds chromedriver binary to path

driver = webdriver.Chrome('/opt/conda/lib/python3.7/site-packages/chromedriver_binary')

对于这最后一种情况,我使用

查找了二进制文件
import chromedriver_binary
print(chromedriver_binary.__file__)

但是不幸的是,我无法使其中任何一个发挥作用。

解决方法

chrome驱动程序取决于本地安装的chrome-因此您必须修改用于首先安装chrome的docker映像。