从PHP运行python crawler(Selenium Chrome)

fivyi3re  于 2023-04-28  发布在  Python
关注(0)|答案(1)|浏览(244)

我有这个脚本:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--remote-debugging-port=9222")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://python.org")
print(driver.title)
driver.close()

当从shell调用时,它返回python的标题。org.
但是当我从PHP调用它时

$result = exec("/usr/bin/python3 " . app_path() . "/webCrawler/test.py 2>&1", $return, $code);
print_r($result);
print_r($code);
print_r($return);

它返回下面的错误,我已经到处找过了,到目前为止没有任何工作,任何想法是怎么回事。?
selenium.common.exceptions.WebDriverException:错误信息:Chrome启动失败:异常退出。(chrome无法访问)(从chrome location /snap/bin/chrome启动的进程不再运行,因此ChromeDriver假设Chrome已崩溃。)
我试过改变chromedriver,我试过在脚本中添加更多的调试,但没有运气。

bq3bfh9z

bq3bfh9z1#

我弄明白了,selenium在从php调用时运行的snap版本与php使用的版本不一样,或者可能是在错误的路径中,所以我只是在selenium中添加了snap chromedriver的路径,这就起作用了。

相关问题