Не могу напрямую зайти на сайт и выцепить код из вакансии за последнюю неделю в реальном времени. Но могу помочь тебе получить такой код самостоятельно и дать готовый шаблон кода, который можно запустить локально после подстановки реального URL и селекторов.
Что сделаем
- Найдём вакансии на сайте за последние 7 дней.
- Из каждой вакансии попробуем извлечь фрагмент кода (если он где-то в описании присутствует в виде блока
или другого элемента с кодом). - Выведем первый попавшийся код или все коды, найденные в вакансиях за период.
Ниже приведён рабочий шаблон на Python. Замени переменную base_url на реальный URL страницы вакансий Kadrout и подстрой CSS-селекторы под реальные структуры сайта.
Шаблон кода на Python (requests + BeautifulSoup)
- Что нужно: Python 3.x, библиотеки requests и beautifulsoup4. Установи их: pip install requests beautifulsoup4
Пример:
import requests
from bs4 import BeautifulSoup
from datetime import datetime, timedelta
def fetch_last_week_codes(base_url, days=7):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
resp = requests.get(base_url, headers=headers, timeout=15)
resp.raise_for_status()
soup = BeautifulSoup(resp.text, 'html.parser')
codes = []
# Пример: ищем карточки вакансий. Тебе нужно подстроить селектор под реальный сайт.
# Возможные варианты: '.vacancy-card', '.job-card', '.vacancy', и т.д.
vacancy_cards = soup.select('.vacancy-card, .job-card, .vacancy')
for card in vacancy_cards:
# Получаем дату публикации. Это тоже место, где нужен реальный селектор.
date_text = None
date_elem = card.select_one('[datetime], .date-posted, .posted-date')
if date_elem:
date_text = date_elem.get_text(strip=True)
else:
date_attr = card.get('data-posted')
if date_attr:
date_text = date_attr
posted = None
if date_text:
posted = parse_date_from_text(date_text)
if posted and (datetime.utcnow() - posted).days <= days:
# Попробуем найти код в вакансии
code_block = card.select_one('pre code')
if code_block:
codes.append(code_block.get_text())
else:
code_inline = card.select_one('code')
if code_inline:
codes.append(code_inline.get_text())
return codes
def parse_date_from_text(text):
text = text.lower()
if 'сегодня' in text:
return datetime.utcnow()
if 'вчера' in text:
return datetime.utcnow() - timedelta(days=1)
# Простой разбор дат в форматах: yyyy-mm-dd, dd.mm.yyyy, dd/mm/yyyy
try:
return datetime.fromisoformat(text)
except Exception:
pass
for fmt in ('%d.%m.%Y', '%d/%m/%Y', '%Y-%m-%d', '%d-%m-%Y'):
try:
return datetime.strptime(text, fmt)
except Exception:
pass
return None
if name == 'main':
base_url = 'kadrout.example.com' # Замени на реальный URL вакансий
codes = fetch_last_week_codes(base_url, days=7)
if codes:
print("Коды из вакансий за последние 7 дней:")
for idx, code in enumerate(codes, 1):
print(f"\n--- Код #{idx} ---\n{code.strip()}\n")
else:
print("За последние 7 дней коды не найдены или кодов в вакансиях нет.")
Как адаптировать под реальный сайт
- Найди реальный URL страницы с вакансиями на Kadrout и открой страницу в браузере.
- Посмотри структуру страницы:
- Какие классы у карточек вакансий? (например, .vacancy-card)
- Где в описании вакансии может находиться код? (обычно в
или просто в ).
- Как помечается публикация даты? (атрибут datetime, класс date-posted и т. п.)
- Подгони селекторы в коде под реальные. Вставь реальный base_url и корректные селекторы:
- vacancy_cards = soup.select('YOUR_VACANCY_CARD_SELECTORS')
- date_elem = card.select_one('YOUR_DATE_SELECTOR')
- code_block = card.select_one('YOUR_CODE_BLOCK_SELECTOR')
Дополнительные варианты
- Если у сайта есть API или RSS-фид вакансий, используйте его. Обычно тогда проще получить данные и отфильтровать по дате без парсинга HTML.
- Если сайт рендерится динамически через JS, может потребоваться Selenium или Playwright вместо requests + BeautifulSoup.
Как продолжить
- Скажи, хочешь, чтобы я подстроил скрипт под конкретный язык программирования (Python, JavaScript/Node.js, другой) и под реальный URL и структуры сайта? Пришли, пожалуйста, пример HTML одной вакансии или ссылку на страницу вакансий Kadrout — и я адаптирую код под неё.
- Либо скажи, хочешь пошаговую инструкцию по ручному поиску в браузере и копированию кода из найденных вакансий.