无法让 selenium webdriver 在 azure databricks 中工作

2023-12-13

我们有一些 python 脚本可以抓取网站并且运行良好。现在我们想在 Azure Databricks 中执行此操作。 我们认为我们可以通过 Databricks 论坛中的以下帖子找到解决方案,但不幸的是,它不起作用。 (https://forums.databricks.com/questions/15480/how-to-add-webdriver-for-selenium-in-databricks.html?childToView=21347#answer-21347)

运行最后一段代码后我们得到的错误是: WebDriverException:消息:未知错误:找不到 Chrome 二进制文件(驱动程序信息:chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Linux 4.15.0-1050-azure x86_64)

最后一段代码如下所示:

    %py

    from selenium import webdriver

    chrome_options = webdriver.ChromeOptions()

    chrome_options.add_argument('--no-sandbox')

    chrome_options.add_argument('--headless')

    chrome_options.add_argument('--disable-dev-shm-usage')

    chrome_driver = "/tmp/chromedriver/chromedriver"

    driver = webdriver.Chrome(chrome_driver, 
    chrome_options=chrome_options)

    driver.get("https://www.google.com")

我找到了一篇文章,其中我必须给出二进制文件的位置:Selenium 在 Mac 上给出“selenium.common.exceptions.WebDriverException:消息:未知错误:找不到 Chrome 二进制文件”

    options.binary_location = "/Applications/Google 
    Chrome.app/Contents/MacOS/Google Chrome"

但我不知道此二进制文件在 Azure Databricks 中的文件位置。


好吧,在对原始脚本进行一些小改动后,我已经让它可以工作了

    %sh /databricks/python3/bin/pip3 install selenium
    ==================
    %sh
    wget      
    https://chromedriver.storage.googleapis.com/73.0.3683.68/chromedriver_linux64.zip 
    -O /tmp/chromedriver_linux64.zip
    ==================
    %sh mkdir /tmp/chromedriver
    ================
    %sh
    unzip /tmp/chromedriver_linux64.zip -d /tmp/chromedriver/
    ==================
    %sh
    sudo add-apt-repository ppa:canonical-chromium-builds/stage
    ===================
    %sh
    /usr/bin/yes | sudo apt update
    ===================
    %sh
    /usr/bin/yes | sudo apt install chromium-browser
    ===================
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_driver = "/tmp/chromedriver/chromedriver"
    driver = webdriver.Chrome(chrome_driver,chrome_options=chrome_options)
    driver.get("https://www.google.com")

该脚本下载并更新了 chromium 至版本 77。而 chromedriver 为 73。更改链接以下载 chromedriver 77 就可以了。

    wget 
    https://chromedriver.storage.googleapis.com/77.0.3865.40/chromedriver_linux64.zip 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法让 selenium webdriver 在 azure databricks 中工作 的相关文章

  • 在已打开的网页上运行测试用例

    我想通过量角器运行我的测试用例 但由于某些限制 我希望量角器在已经打开的页面上启动 这意味着我不希望驱动程序通过加载 chrome 并转到测试用例中定义的 url 来启动 如果我可以使用屏幕上已打开的 url 然后使用测试用例中定义的内容进
  • Selenium Click 不起作用 - Chrome 驱动程序 - 版本 73.0.3683.68

    我刚刚将我的 Chrome 驱动程序更新到最新版本 73 0 3683 68 自从我的 点击 功能无法正常工作 它有时会工作 但不是每次都工作 Chrome版本 版本73 0 3683 75 官方版本 64位 我用 C 编码 最大的问题是
  • 读取和写入二进制文件

    我正在尝试编写代码将二进制文件读入缓冲区 然后将缓冲区写入另一个文件 我有以下代码 但缓冲区仅存储文件第一行中的几个 ASCII 字符 没有其他内容 int length char buffer ifstream is is open C
  • 二进制文件的结构验证

    我正在研究正式指定各种二进制流格式的方法 并使用工具检查流是否符合规范 类似于 XSD 任何 XML 验证工具 或者就像在二进制级别上工作的极其复杂的 grep 表达式 最好不是 这真的很难阅读 有人知道有用的规范 工具吗 理由 我们每天都
  • RSelenium:抓取加载缓慢的动态加载页面

    我不确定是否是因为我的网速很慢 但我正在尝试抓取一个在您向下滚动页面时加载信息的网站 我正在执行一个转到页面末尾的脚本 并等待 Selenium Chrome 服务器加载附加内容 服务器确实更新并加载新内容 因为我能够抓取最初不在页面上的信
  • 如何创建二进制补丁?

    为二进制文件制作补丁的最佳方法是什么 我希望用户能够简单地应用 一个简单的patch应用程序会很好 在文件上运行 diff 只是给出Binary files differ 查看bsdiff and bspatch website http
  • 奇怪的 0x0D 被添加到我的二进制文件中

    我有这个奇怪的问题 我将 16 个字符写入一个二进制文件 然后写入 3 个整数 但是当我使用某些二进制文件查看器打开文件时 我看到添加了一个额外的字节 等于0x0D 这是我的代码 for i 0 i lt 16 i if i lt strl
  • 使用 Selenium 的 Chrome 驱动程序错误:无法发现打开的页面

    运行 Selenium 测试时 我收到与 Chrome 驱动程序相关的错误 错误消息是 无法发现打开的页面 直到昨晚 Selenium 测试都运行良好 问题似乎是在前一天重新启动服务器后开始的 我无法在本地机器上重现此错误 从服务器上的命令
  • 使用 chrome canary 执行 selenium python 脚本时如何抑制控制台错误/警告/信息消息

    我正在使用 Chrome Canary 运行 python 脚本 下面的完整脚本链接 进行硒测试 测试似乎运行良好 但是 控制台上显示了大量错误 警告 信息消息 有没有办法抑制这些消息 我努力了 chrome options add arg
  • 将二进制文件转换为图像

    我需要找到一种将二进制文件转换为图像的快速方法 二进制文件由 N 个NN 矩阵 我想将 0 与一种颜色关联 将 1 与另一种颜色关联 我需要对超过 1000 个二进制文件执行此操作 如果可能的话 我想避免使用 MatLab 有没有任何工具
  • 如何在 Python 中使用 Selenium 运行无头 Chrome?

    我正在尝试使用 selenium 进行一些操作 我真的希望我的脚本能够快速运行 我认为使用无头 Chrome 运行我的脚本会使其速度更快 首先 这个假设是否正确 或者我是否使用无头驱动程序运行我的脚本并不重要 我希望无头 Chrome 能够
  • 是否有将二进制数据打包成 UTF-16 字符串的标准技术?

    在 NET中 我有任意二进制数据存储在byte 例如图像 现在 我需要将该数据存储在string 旧 API 的 注释 字段 有没有标准技术packing将此二进制数据转换为string 我所说的 打包 是指对于任何相当大且随机的数据集 字
  • TypeError:“WebElement”对象不是可迭代错误

    我试图从维基百科主页提取所有链接 但此代码显示 TypeError WebElement object is not iterable 错误 import time from selenium import webdriver from s
  • 将 Matplotlib 输出保存到 Databricks 上的 Blob 存储

    我正在尝试使用此处提供的方法将 matplotlib 图形写入 Azure blob 存储 将 Matplotlib 输出保存到 Databricks 上的 DBFS https stackoverflow com questions 57
  • 如何从 wfstream 读取二进制数据?

    我从文件读取数据时遇到一个小问题 我希望能够读取 wstring 以及任意大小的原始数据块 大小以字节为单位 std wfstream stream file c str std wstring comType stream gt gt c
  • 二进制增量存储

    我正在寻找一种二进制增量存储解决方案来版本化大型二进制文件 数字音频工作站文件 使用 DAW 文件时 与用于存储原始数据 波形 的大量数据相比 大多数更改 尤其是在混音结束时 都非常小 如果我们的 DAW 文件有一个版本控制系统 让我们可以
  • Watir 脚本偶尔返回 Net::ReadTimeout 错误

    我有一个 Watir 脚本 偶尔会意外地返回此错误 Net ReadTimeout 我搜索了这个错误并发现这个问题 https stackoverflow com questions 47452276 watir get sometimes
  • 使用 PHP Selenium 禁用图像加载

    如何在 ChromeOptions 中禁用图像加载 PHP 库 我尝试了以下但不确定语法是否正确 options new ChromeOptions disable images options gt addArguments array
  • 在哈希图中存储字符和二进制数

    我正在尝试存储字母到二进制数的映射 这是我的映射 h 001 i 010 k 011 l 100 r 101 s 110 t 111 为此 我创建了一个哈希映射并存储了键值对 我现在想显示给定句子的相应二进制值 这是我的代码 package
  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我

随机推荐

  • 根在函数中不起作用[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想在函数中使用matlab函数根 但这不起作用 我不知道如何解决这个问题 这是函数 f
  • 在 PyCharm 中使用 Matplotlib 时如何修复“无法找到或加载 Qt 平台插件窗口”

    在 PyCharm 中使用 matplotlib 时收到错误 无法找到或加载 Qt 平台插件窗口 我该如何解决这个问题 我在 Anaconda3 4 2 0 和 4 3 0 1 64 位 上遇到了同样的问题 当我尝试运行一个使用 matpl
  • 我想捕获一个异常并将其捆绑在我自己的异常中并向上抛出

    我有一个管理资源的类 它需要一个可以从路径检索资源的 Loader 类 Loader 是一个抽象基类 因此任何人都可以创建新的加载器 如果请求的资源不在缓存中 则资源管理器将从加载器请求该资源 如果加载器失败 资源管理器会抛出一个我创建的名
  • 根据服务器数据(纬度和经度)移动MKMapView中的注释

    在我的应用程序中 我通过以特定时间间隔从服务器获取其他人的位置 纬度和经度 来显示其他人的位置 获取后 我必须删除所有注释并根据服务器数据删除新注释 但它看起来效率很低 因为当我们先前存在同一用户的注释时 即使我删除并添加相同的用户注释 所
  • 如何修复 ASP.NET 开发服务器中的端口号

    昨天我正在编写一个独立的 html 网页 每次我查看它时 该文件都在本地主机中运行 因此 我的操作系统 Windows 8 分配了一个端口号 我的文件的路径如下所示 http localhost 2038 Projects test htm
  • M_PI 适用于 math.h,但不适用于 Visual Studio 中的 cmath

    我正在使用 Visual Studio 2010 我读过在 C 中最好使用
  • 如何启动具有标准 bash shell 环境的 java 进程?

    我尝试过研究进程构建器 但我不确定如何将 bash 环境引入到进程中 例如 我使用以下命令来启动我的流程 Process p new ProcessBuilder args start InputStream is p getInputSt
  • 从我的图书馆项目启动主项目的活动

    我有 2 个项目 一个是我的主项目 A 另一个是图书馆项目 B 我想从 B 中的活动启动 A 中的活动 我该怎么做 I Tried startActivity getApplicationContext B class but B clas
  • 我是否使用 GMFBridge.DLL 正确预览/捕获流?

    我正在尝试使用 GMFBuilder 以便我可以预览来自网络摄像头的流并定期保存它 而无需重新启动整个图表 然而 我不确定这是否正确 我试图遵循示例 但代码已更新 情况也发生了变化 我尝试创建 WEbcam gt Smart Tee pre
  • WPF;单击一次;双击文件启动;对比2008年

    我的应用程序仅供我和同事使用 因此我不在乎它是 Click Once 还是复制 exe 我希望能够在 Windows 资源管理器中单击具有给定扩展名的文件 然后启动我的程序并打开该文件 我无法让它捕获文件名 表面上的解决方案 Link 我正
  • 将数据框与 data.table 匹配

    我需要使用另一个矩阵作为标识符 ID MA 用来自长数据帧 DF 的信息填充矩阵 MA 我的三个矩阵的想法 MA ID 创建一个标识符来在大 DF 中查找所需的变量 a b c a ID aa ID ab ID ac b ID ba ID
  • 如何访问 __main__ 范围内的全局变量?

    我对 python 中变量的命名空间和范围感到困惑 假设我有一个 test py coding utf 8 author jason if name main global strName print strName 然后 我定义一个名为
  • 包含指针的原子结构

    include
  • 注册本地通知

    我正在开发一个带有phonegap的IOS应用程序 需要为其设置本地通知 该通知将在每个星期五和指定时间重复 还要求用户决定是否接收本地通知 我建议您阅读以下有关该主题的文章 我发现它非常有帮助 http useyourloaf com b
  • Instagram 视频 iPhone 挂钩

    目前最好的解决方案 https stackoverflow com a 21888830 1786820 我正在尝试做得更好 通过使用从 PhotoRoll 中预先选择的视频文件和预加载的标题打开 Instagram 应用程序 在 Flip
  • Native-session 针对代码点火器 2.1.4 进行了修改...这有意义吗?

    有人看到 CI 2 1 4 的修改有问题吗 该类是为 1 7 2 编写的 Github链接 问题 1 regenerate id的用途是什么 是会话 ID 轮换吗 2 session write close的潜在问题是什么 如评论中所示 3
  • 从c#中查找msform上的所有控件

    我正在尝试使用 VBA 可扩展性互操作从 c 查找 msform 上的所有控件 我可以使用以下方式找到所有表格 using System using Microsoft Office Interop Excel using Microsof
  • 如何使用 Python Urwid 制作类似聊天的 UI? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我已经可以使用 gevent 和 Zeromq 实现聊天守护进程 但我想为它们制作一个控制台 UI 我第一次尝试 ncurses 失败了 所以我尝试了Urwid并发现该项目nig
  • 用Java制作数字时钟

    我正在为一个项目制作一个数字时钟 我有四个课程 DigitalTimeUI 这是 JFrame 类 TitlePanel DigitPanel and ColonPanel 它们是所述项目的 JPanel 完成后 它应该看起来像这样 我坚持
  • 无法让 selenium webdriver 在 azure databricks 中工作

    我们有一些 python 脚本可以抓取网站并且运行良好 现在我们想在 Azure Databricks 中执行此操作 我们认为我们可以通过 Databricks 论坛中的以下帖子找到解决方案 但不幸的是 它不起作用 https forums