提问人:emil banning 提问时间:9/15/2020 最后编辑:emil banning 更新时间:12/31/2020 访问量:428
在没有浏览器的情况下使用 Selenium 进行网络抓取
Webscraping with Selenium without browser
问:
我想使用 Python 模块 Selenium 通过 jupyter 笔记本进行 Web 抓取。jupyter 笔记本在没有任何 Web 浏览器的 docker-container 中运行。我希望能够分发笔记本,以便其他用户可以复制网络抓取。笔记本在通用的 jupyter lab 容器上运行,并且无法更新容器以包含浏览器。
我尝试了很多事情:
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__)
但不幸的是,我无法使它发挥作用。
答:
1赞
lscoughlin
9/15/2020
#1
Chrome 驱动程序依赖于 Chrome 的本地安装 - 因此您必须先修改用于安装 Chrome 的 Docker 映像。
评论
0赞
emil banning
9/15/2020
您在技术上是正确的,但我使用的是 jupyter lab 的容器化实例,我无法修改 docker 映像。所以我希望我能找到一个解决方法,然后安装浏览器
0赞
GriffoGoes
4/1/2022
派对有点晚了,但我遇到了同样的问题,所以我用抓取工具创建了一个 jupyter 堆栈,并 jupyter-docker-stacks.readthedocs.io/en/latest/using/ 添加到社区堆栈中......
评论