[python] - Как в Selenium записать на диск все то, что он получит в driver.get()
От: senglory  
Дата: 11.10.25 20:07
Оценка:
Вот такой код:

driver = webdriver.Chrome(
    service=Service(ChromeDriverManager(driver_version="116.0.5845.141").install(), options=options))

driver.get("https://www.linkedin.com/jobs/search/?currentJobId=3656983339&f_LF=f_AL&geoId=102257491&keywords=python%20developer&origin=JOB_SEARCH_PAGE_SEARCH_BUTTON&refresh=true")


all_listings = driver.find_elements(By.CSS_SELECTOR ,".job-card-container--clickable")


В результате, в all_listings я получаю пустой обьект, при том, что в хроме в DevTools вполне себе находится по селектору элемет с ".job-card-container--clickable".
Поэтому хочу увидеть что там selenium скачал на вызове driver.get(). Как это сделать?
python3 selenium
Re: [python] - Как в Selenium записать на диск все то, что о
От: bnk СССР http://unmanagedvisio.com/
Дата: 11.10.25 22:30
Оценка: +1
Здравствуйте, senglory, Вы писали:

S>В результате, в all_listings я получаю пустой обьект, при том, что в хроме в DevTools вполне себе находится по селектору элемет с ".job-card-container--clickable".

S>Поэтому хочу увидеть что там selenium скачал на вызове driver.get(). Как это сделать?

  Просто позвони Солу

Вот несколько способов посмотреть, что Selenium скачал:

**1. Самый простой — вывести исходный код страницы:**

```python
print(driver.page_source)
```

**2. Сохранить в файл (удобнее для больших страниц):**

```python
with open("page.html", "w", encoding="utf-8") as f:
f.write(driver.page_source)
```

Потом откроешь `page.html` в браузере или редакторе.

**3. Проверить, полностью ли загрузилась страница:**

Вероятно, проблема в том, что Selenium загружает страницу, но JavaScript не успевает отрендерить элементы. Добавь ожидание:

```python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver.get("https://www.linkedin.com/jobs/search/?...")

# Жди, пока элементы появятся (максимум 10 секунд)
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".job-card-container--clickable")))

all_listings = driver.find_elements(By.CSS_SELECTOR, ".job-card-container--clickable")
```

**4. Проверить, нет ли ошибок сети или редиректа:**

```python
driver.get("...")
print(driver.current_url) # Проверь, на какой URL перенаправилась страница
print(driver.title) # И заголовок страницы
```

Скорее всего, дело именно в том, что `driver.get()` возвращает страницу до полной загрузки JavaScript. LinkedIn динамически загружает элементы, поэтому нужно добавить явное ожидание элементов перед их поиском.



Проблемы по сути две:
— когда ты видишь .job-card-container--clickable ты залогинен, проверь под private, его там нет
— ты не ждешь элементов (они подгружаются динамически)

Вообще даешь задание ИИ, он тебе напишет нормальный скрипт за 5 секунда, не надо мучаться

  вот
driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install()), 
    options=options
)

# Load LinkedIn jobs page
url = "https://www.linkedin.com/jobs/search/?keywords=python%20developer&location=London"
driver.get(url)

# Wait for job listings to load (more robust than sleep)
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".job-search-card")))

# Get all job listings
all_listings = driver.find_elements(By.CSS_SELECTOR, ".job-search-card")

print(f"Found {len(all_listings)} jobs\n")
Отредактировано 11.10.2025 22:31 bnk . Предыдущая версия .
Re[2]: [python] - Как в Selenium записать на диск все то, что о
От: senglory  
Дата: 11.10.25 23:14
Оценка:
За наводку спасибо, но именно DeepSeek мне там какого только говна не накидывал при формировании кода вызова selenium )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.