Fehlermeldung: < /p>
Code: Select all
WARNING:selenium.webdriver.common.selenium_manager:Cache folder (/home/sbx_user1051/.cache/selenium) cannot be created: Read-only file system (os error 30)
127.0.0.1 - - [12/Feb/2025 21:42:10] "GET /api/search?q=laptop HTTP/1.1" 500 -
from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from selenium.webdriver.edge.options import Options as EdgeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, WebDriverException, NoSuchElementException
from bs4 import BeautifulSoup
from time import sleep
import urllib.parse
import re
import os
class StoreScraper:
def __init__(self, store_name):
self.store_name = store_name
self.driver = self.setup_driver()
def setup_driver(self):
options = EdgeOptions()
# Headless mode for performance
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-extensions")
options.add_argument("--disable-infobars")
options.add_argument("--disable-browser-side-navigation")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("--disable-popup-blocking")
# Use a custom user-agent to avoid detection
options.add_argument(
"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edg/109.0.0.0 Safari/537.36"
)
# Use the /tmp directory for WebDriver cache and user data
temp_dir = "/tmp/webdriver"
os.makedirs(temp_dir, exist_ok=True)
options.add_argument(f"--user-data-dir={temp_dir}")
options.add_argument(f"--disk-cache-dir={temp_dir}")
# Initialize Edge WebDriver (Ensure `msedgedriver` is in PATH)
service = EdgeService()
driver = webdriver.Edge(service=service, options=options)
return driver
def quit_driver(self):
if self.driver:
self.driver.quit()
self.driver = None
# Other methods...
< /code>
Was ich ausprobiert habe: < /p>
Verwenden eines temporären Verzeichnisses für den Webdriver -Cache. < /li>
Einstellen des Cache-Verzeichnisses in ein temporäres Verzeichnis. Ordner beim Bereitstellen meiner Fastapi -Anwendung auf Vercel?