import os
import subprocess
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
def get_driver():
chromedriver_install = ChromeDriverManager().install()
# Print the version of ChromeDriver
try:
# Use subprocess to get the ChromeDriver version
version_output = subprocess.check_output([chromedriver_install, "--version"], stderr=subprocess.STDOUT).decode('utf-8')
print(f"Installed ChromeDriver version: {version_output}")
except Exception as e:
print(f"Error fetching ChromeDriver version: {e}")
options = Options()
options.add_argument('--headless=new')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(
service=Service(chromedriver_install),
options=options
)
return driver
driver = get_driver()
# Navigate to the news website
driver.get("https://www.nytimes.com/")
# Scrape the headlines
headlines = driver.find_elements(By.CLASS_NAME, "indicate-hover")
print("i am running")
for headline in headlines:
print(headline.text)
print("i am closed")
# Close the browser
driver.quit()
Заходим в контейнерный терминал через Docker Desktop и вручную добавляем петлю локального хоста 127.0.0.1 в /etc/hosts
Заходим в контейнерный терминал через Docker Desktop и добавляем вручную петлю локального хоста 127.0.0.1 в /etc/hosts
code>, а затем вручную запустить python Scrap.py из этого терминала — тоже без радости
Добавление флага shm-size=2gb в мою команду запуска Docker . (На самом деле я предполагаю, что аргумент --disable-dev-shm-usage также охватывает это, но попытаться стоило)
Приношу извинения за длину, но любая помощь или направление будут очень признательны. Это проект технического собеседования, которое мне очень нужно, и мне нужно подготовить его как можно скорее!
Спасибо!
[/code] [b]А это мой скрипт Python:[/b] [code]import os import subprocess from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager
# Print the version of ChromeDriver try: # Use subprocess to get the ChromeDriver version version_output = subprocess.check_output([chromedriver_install, "--version"], stderr=subprocess.STDOUT).decode('utf-8') print(f"Installed ChromeDriver version: {version_output}") except Exception as e: print(f"Error fetching ChromeDriver version: {e}")
# Navigate to the news website driver.get("https://www.nytimes.com/")
# Scrape the headlines headlines = driver.find_elements(By.CLASS_NAME, "indicate-hover") print("i am running") for headline in headlines: print(headline.text) print("i am closed") # Close the browser driver.quit() [/code] [b]Полная ошибка:[/b] [code]Traceback (most recent call last): File "/app/scrap.py", line 32, in driver = get_driver() ^^^^^^^^^^^^ File "/app/scrap.py", line 25, in get_driver driver = webdriver.Chrome( ^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__ super().__init__( File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/chromium/webdriver.py", line 66, in __init__ super().__init__(command_executor=executor, options=options) File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 212, in __init__ self.start_session(capabilities) File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 299, in start_session response = self.execute(Command.NEW_SESSION, caps)["value"] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 354, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.12/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: disconnected: Unable to receive message from renderer (failed to check if window was closed: disconnected: not connected to DevTools) (Session info: chrome=129.0.6668.89) Stacktrace: #0 0x00400084002a #1 0x0040005265e0 #2 0x00400050e733 #3 0x00400050e422 #4 0x00400050c493 #5 0x00400050cada #6 0x00400050b451 #7 0x004000513a38 #8 0x00400050b19b #9 0x00400050e0ea #10 0x00400050c493 #11 0x00400050cada #12 0x00400050b451 #13 0x004000501d07 #14 0x00400050b19b #15 0x00400050aaa2 #16 0x00400050a575 #17 0x00400052880e #18 0x0040004fb78e #19 0x0040004fb2f6 #20 0x0040005a6ffc #21 0x0040005a6446 #22 0x00400059a8c3 #23 0x0040005686b3 #24 0x00400056968e #25 0x00400080aa2b #26 0x00400080e9b1 #27 0x0040007f7225 #28 0x00400080f532 #29 0x0040007dc38f #30 0x00400082ef28 #31 0x00400082f0f3 #32 0x00400083ee7c #33 0x004002e41144 [/code] [b]Другие важные сведения:[/b] [list] [*]Базовый контекст сборки: MAC OS M1 Sonoma 14.6. 1 [*]Версия Selenium: 4.25.0 [*]Версия Chromedriver: 129.0.6668.89 [*]Версия Chrome: 129.0 .6668.89 [/list] Уже предпринятые решения [list] [*]Вывод версий chromedriver и chrome каждая соберите и запустите, чтобы убедиться, что они совпадают. [*]Экспериментируйте со всеми этими дополнительными аргументами: [/list] [code] # options.add_argument("--disable-extensions") # options.add_argument("--disable-gpu") # options.add_argument("--disable-infobars") # options.add_argument("--start-maximized") # options.add_argument("--disable-notifications") [/code] [list] [*]Заходим в контейнерный терминал через Docker Desktop и вручную добавляем петлю локального хоста 127.0.0.1 в /etc/hosts
Заходим в контейнерный терминал через Docker Desktop и добавляем вручную петлю локального хоста 127.0.0.1 в /etc/hosts
code>, а затем вручную запустить python Scrap.py из этого терминала — тоже без радости [*]Добавление флага shm-size=2gb в мою команду запуска Docker . (На самом деле я предполагаю, что аргумент --disable-dev-shm-usage также охватывает это, но попытаться стоило) [/list] Приношу извинения за длину, но любая помощь или направление будут очень признательны. Это проект технического собеседования, которое мне очень нужно, и мне нужно подготовить его как можно скорее! Спасибо!
Я пытаюсь подключиться из сценария Python к базе данных Postgres. Вот мой докер-компоновка:
networks:
backend:
name: value_tracker_backend
external: true
services:
db:
build:
context: ./sql
dockerfile: db.dockerfile
environment:
POSTGRES_PASSWORD:...
Я пытался запрограммировать веб-скребок с Selenium в образовательных целях, который отображает данные фондового рынка из «The Wall Street Journal». Я хочу узнать количество растущих и снижающихся выпусков по этой ссылке:
Мой вебскреб выглядит так:...
Я пытался запрограммировать веб-скребок с Selenium в образовательных целях, который отображает данные фондового рынка из «The Wall Street Journal». Я хочу узнать количество растущих и снижающихся выпусков по этой ссылке:
Мой вебскреб выглядит так:...
Я пытался запрограммировать веб-скребок с Selenium в образовательных целях, который отображает данные фондового рынка из «The Wall Street Journal». Я хочу узнать количество растущих и снижающихся выпусков по этой ссылке:
Мой вебскреб выглядит так:...
Я пытался запрограммировать веб-скребок с Selenium в образовательных целях, который отображает данные фондового рынка из «The Wall Street Journal». Я хочу узнать количество растущих и снижающихся выпусков по этой ссылке:
Мой вебскреб выглядит так:...