llama_index 无法在云端使用WholeSiteReader,

clj7thdc  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(35)

问题验证

  • 我已经在文档和Discord上寻找答案。

问题

我正在使用WholeSiteReader()将网站加载到LlamaIndex Document对象中。在我的本地系统上它运行正常,但是当我在云端运行笔记本时,它显示
ValueError: No chrome executable found on PATH
我知道驱动程序需要给定Chrome可执行文件的路径,但我无法解决这个问题。如果有人能提供帮助,将不胜感激。
谢谢!

fjaof16o

fjaof16o1#

嘿,@VaradDeshmukh97,很高兴再次在这里见到你!🚀你在云端的冒险听起来像一个传奇故事。我会尽快回来给你制定一个征服这个错误的策略!🌩️

vuktfyat

vuktfyat2#

当我运行这个时,

from llama_index.readers.web import WholeSiteReader
from selenium import webdriver
def load_websites(prefix, base_url, max_depth=1):
    '''
    Recursively searches and loads a website into LlamaIndex Document objects.
    Args:
        prefix = url of the website
        base_url = url of the page from where to start the scraping
    '''
    driver = webdriver.Chrome()
    scraper = WholeSiteReader(
        prefix=prefix,
        max_depth=max_depth,
        driver=driver
    )
    websites = scraper.load_data(
        base_url=base_url
    )
    return websites

我得到了以下错误:

SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally.
  (session not created: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /teamspace/studios/this_studio/.cache/selenium/chrome/linux64/123.0.6312.122/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55b5d0b0f863 <unknown>
#1 0x55b5d08058c6 <unknown>
#2 0x55b5d0839d34 <unknown>
#3 0x55b5d0835d3d <unknown>
#4 0x55b5d087eaed <unknown>
#5 0x55b5d0872343 <unknown>
#6 0x55b5d0843593 <unknown>
#7 0x55b5d0843f5e <unknown>
#8 0x55b5d0ad384b <unknown>
#9 0x55b5d0ad77a5 <unknown>
#10 0x55b5d0ac1571 <unknown>
#11 0x55b5d0ad8332 <unknown>
#12 0x55b5d0aa687f <unknown>
#13 0x55b5d0afe728 <unknown>
#14 0x55b5d0afe8fb <unknown>
#15 0x55b5d0b0e9b4 <unknown>
#16 0x7ff2fb9b8609 start_thread
yptwkmov

yptwkmov3#

你遇到的错误表明Chrome和ChromeDriver之间存在兼容性问题,或者在你的云环境中定位Chrome可执行文件有问题。以下是解决这些问题的方法:

  1. 检查Chrome和ChromeDriver的兼容性:确保你使用的Chrome和ChromeDriver的版本是兼容的。不匹配可能导致SessionNotCreatedException
  2. 使用远程WebDriver:在云环境中,常见的做法是设置一个远程WebDriver。这涉及到将你的代码配置为使用webdriver.Remote()而不是webdriver.Chrome(),指定Selenium Grid或基于云的测试服务的URL以及所需的功能。
  3. 指定Chrome二进制文件的位置:如果Chrome二进制文件位于非标准位置,你可能需要使用ChromeOptions显式地设置其路径。这是通过在初始化WebDriver之前设置opt.binary_location = '/path/to/chrome'来完成的。
    以下是一个使用远程WebDriver的代码片段,你应该根据你的环境进行调整:
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

def setup_driver(self):
    selenium_grid_url = "http://your.selenium.grid.url:4444/wd/hub"
    capabilities = DesiredCapabilities.CHROME.copy()
    
    opt = webdriver.ChromeOptions()
    # Specify binary location if necessary
    # opt.binary_location = '/path/to/chrome'
    capabilities.update(opt.to_capabilities())

    return webdriver.Remote(command_executor=selenium_grid_url, desired_capabilities=capabilities)

"http://your.selenium.grid.url:4444/wd/hub"替换为你的Selenium Grid中心URL或基于云的Selenium服务的端点。这种设置要求远程环境安装了正确的Chrome和ChromeDriver版本。如果你仍然遇到问题,请分享更多关于你的云设置的信息,包括Chrome和ChromeDriver的版本以及Chrome可执行文件的位置。

参考资料

关于Dosu

这个响应旨在帮助你节省时间并提高效率。它不是精确的解决方案,而是你自己的研究的一个起点。
帮我变得更有用!如果你觉得这个回答有帮助,请留下一个👍,如果没有帮助就请留下一个👎。
如果你想继续讨论,请以@dosu-bot开始你的回复。

q43xntqr

q43xntqr4#

嘿,@VaradDeshmukh97,你找到了解决这个问题的方法或变通办法吗?我遇到了同样的问题,如果能得到你的帮助就太棒了!

相关问题