Скажи код с последней вакансией на сайте kadrout
Ответ нейросети
04 октября 2025 06:09
Не могу напрямую зайти на сайт и взять актуальную последнюю вакансию здесь, но могу дать готовый рабочий шаблон кода, который вы сможете запустить у себя и получить последнюю вакансию с сайта kadrout. Выберите подходящий вариант: через API (если есть) или через парсинг HTML страниц.
Общие шаги (для любой из методик)
- Установите зависимости: Python 3.x, затем:
- pip install requests beautifulsoup4
- Найдите на сайте, есть ли API и как он называется (часто это /api/vacancies или аналогичный эндпойнт). Если API доступно — используйте первый вариант.
- Если API нет — используйте второй вариант и адаптируйте селекторы под реальный HTML страницы вакансий (через Inspect Element в браузере).
- Вариант через API (если сайт предоставляет API для вакансий) Этот шаблон отправляет запрос к API и выводит самую свежую вакансию. Обязательно поменяйте api_url на реальный адрес API kadrout и, при необходимости, добавьте заголовки/авторизацию.
Пример кода (Python)
Требуется Python 3.x
import requests
def get_latest_vacancy_from_api(api_url, token=None): headers = {} if token: headers['Authorization'] = f'Bearer {token}' resp = requests.get(api_url, headers=headers, timeout=10) resp.raise_for_status() data = resp.json()
# Приведение к виду списка вакансий, если структура отличается
vacancies = []
if isinstance(data, list):
vacancies = data
elif isinstance(data, dict):
if 'vacancies' in data:
vacancies = data['vacancies']
else:
vacancies = [data]
if not vacancies:
return None
latest = vacancies[0] # предполагаем, что список отсортирован по дате
# Названия полей нужно адаптировать под реальную схему API
title = latest.get('title') or latest.get('name')
company = latest.get('company') or latest.get('employer')
location = latest.get('location') or latest.get('city')
date_posted = latest.get('datePosted') or latest.get('date') or ''
url = latest.get('url') or latest.get('link') or latest.get('vacancy_url')
return {
'title': title,
'company': company,
'location': location,
'date_posted': date_posted,
'url': url
}
def main(): api_url = 'https://kadrout.example/api/vacancies?sort=date_desc&limit=1' # замените на реальный адрес API vacancy = get_latest_vacancy_from_api(api_url) if vacancy: print(f"{vacancy['title']} — {vacancy['company']} — {vacancy['location']} — {vacancy['date_posted']} — {vacancy['url']}") else: print("Нет вакансий или структура API неизвестна.")
if name == 'main': main()
Как адаптировать:
- Найдите в документации API реальный путь к списку вакансий и параметры сортировки (last_date, created_at и т.д.).
- Уточните названия полей в возвращаемом JSON и подгоните код под них.
- Вариант через парсинг HTML (если API нет) Этот шаблон парсит страницу вакансий и пытается найти первую карточку вакансии.
Пример кода (Python)
Требуется Python 3.x
import requests from bs4 import BeautifulSoup from urllib.parse import urljoin
def get_latest_vacancy_from_page(page_url): headers = { 'User-Agent': 'Mozilla/5.0 (compatible; YourBot/1.0; +https://example.com/bot)' } resp = requests.get(page_url, headers=headers, timeout=10) resp.raise_for_status() soup = BeautifulSoup(resp.text, 'html.parser')
# Попытка найти карточку вакансии
card = soup.select_one('.vacancy-card')
if not card:
# Попробуйте другие распространённые селекторы
candidates = soup.select('.job-card, .vacancy, .opening')
card = candidates[0] if candidates else None
if not card:
return None
# Пример селекторов — замените на реальные после просмотра страницы
title_el = card.select_one('.vacancy-title') or card.find(['h3', 'h2'])
company_el = card.select_one('.vacancy-company') or card.find(class_='employer')
location_el = card.select_one('.vacancy-location') or card.find(class_='location')
date_el = card.select_one('.vacancy-date') or card.find(class_='date')
link_el = card.find('a')
title = title_el.get_text(strip=True) if title_el else ''
company = company_el.get_text(strip=True) if company_el else ''
location = location_el.get_text(strip=True) if location_el else ''
date_posted = date_el.get_text(strip=True) if date_el else ''
url = urljoin(page_url, link_el['href']) if link_el and link_el.has_attr('href') else page_url
return {
'title': title,
'company': company,
'location': location,
'date_posted': date_posted,
'url': url
}
def main(): page_url = 'https://kadrout.ru/vacancies' # замените на реальный адрес страницы вакансий vacancy = get_latest_vacancy_from_page(page_url) if vacancy: print(f"{vacancy['title']} — {vacancy['company']} — {vacancy['location']} — {vacancy['date_posted']} — {vacancy['url']}") else: print("Не удалось найти вакансию. Проверьте селекторы на странице и обновите их.")
if name == 'main': main()
Как адаптировать:
- Откройте страницу вакансий в браузере, вызовите Inspect Element и найдите общий контейнер для вакансий (класс карточки, селектор списка).
- Подставьте точные селекторы вместо .vacancy-card, .vacancy-title, .vacancy-location и т.д.
- Если страница загружается динамически (через JS), вам понадобятся Selenium или Playwright, чтобы отрисовать страницу и извлечь данные.
Дополнительно и советы
- Уважайте robots.txt и условия использования сайта. Не делайте слишком частых запросов.
- Если страница динамическая, можно использовать headless-браузер (Selenium, Playwright) для загрузки и извлечения данных.
- Если хотите, могу адаптировать код под конкретную страницу — пришлите HTML-объект страницы вакансий или поясните, какие селекторы на ней работают (посмотрите на Classes/CSS-структуру через DevTools).
Готов помочь адаптировать под реальную структуру kadrout: если у вас есть пример HTML-страницы вакансий (или ссылка на страницу с последней вакансией), пришлите фрагмент структуры (покажите, какие классы у карточки и заголовка), и я доработаю код под неё.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



