Загрузка данных
.https://unecon.ru/personality/?page=1
2.разрешить вставку
3. console.table(
[...document.querySelectorAll("a")].map(a => ({
text: a.innerText.trim(),
url: a.href
}))
)
4.const btn = [...document.querySelectorAll('button, input[type="submit"]')]
.find(el => (el.innerText || el.value || '')
.trim().toLowerCase() === 'найти');
const start = btn.getBoundingClientRect();
btn.style.position = 'fixed';
btn.style.left = start.слева + 'px';
btn.style.top = start.top + 'px';
btn.style.margin = '0';
btn.style.zIndex = '999999';
btn.style.transition = 'слева 0,08 с, сверху 0,08 с';
document.addEventListener('mousemove', (e) => {
const r = btn.getBoundingClientRect();
const centerX = r.left + r.width / 2;
const centerY = r.top + r.height / 2;
const dx = centerX - e.clientX;
const dy = centerY - e.clientY;
const distance = Math.hypot(dx, dy);
// Начинаем убегать, когда мышь приблизилась на 180 px
if (distance < 180) {
const length = Math.max(distance, 1);
// Направление ОТ курсора
const dirX = dx / length;
const dirY = dy / length;
// Насколько далеко прыгаем
const jump = 220;
let newLeft = r.left + dirX * jump;
let newTop = r.top + dirY * jump;
// Не позволяем кнопке убежать за пределы окна
newLeft = Math.max(
10,
Math.min(window.innerWidth - r.width - 10, newLeft)
);
newTop = Math.max(
10,
Math.min(window.innerHeight - r.height - 10, newTop)
);
btn.style.left = newLeft + 'px';
btn.style.top = newTop + 'px';
}
});
5. document.querySelectorAll('style, link[rel="stylesheet"]')
.forEach(el => el.remove());
6.pip install requests beautifulsoup4
7. import requests
url = "https://unecon.ru/personalities/?page=1"
response = requests.get(url)
print(response.status_code)
print(response.text[:1000])
8.print(response.request.headers)
9.
headers = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/140.0.0.0 Safari/537.36"
)
}
10.response = requests.get(
url,
headers=headers,
timeout=10
)
11.from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title)
11.1 # Сохраняем полученный HTML в файл
with open("page.html", "w", encoding="utf-8") as file:
файл.write(response.text)
print("HTML сохранён в файл page.html")
12.people = soup.select("НАЙДЕННЫЙ_CSS_СЕЛЕКТОР")
print(people)
13.people = soup.select_one("#personalities > h1")
print(people.get_text(strip=True))
14. import requests
import json
# API, который РјС‹ нашли через DevTools в†’ Сеть в†’ Fetch/XHR
url = "https://unecon.ru/wp-json/unecon/v1/personalities/load?page=1"
# Представляемся обычным браузером
headers = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/140.0.0.0 Safari/537.36"
)
}
# Отправляем GET-запрос
response = requests.get(
url,
headers=headers,
timeout=10
)
# Превращаем JSON-ответ в Python-объект
data = response.json()
# Красиво выводим весь JSON
print(
json.dumps(
data,
ensure_ascii=False,
indent=2
)
)
15.import requests
url = "https://unecon.ru/wp-json/unecon/v1/personalities/load?page=1"
headers = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/140.0.0.0 Safari/537.36"
)
}
response = requests.get(
url,
headers=headers,
timeout=10
)
# Превращаем JSON в Python
data = response.json()
# Получаем список сотрудников
people = data["list"]
# Перебираем сотрудников
для person в people:
имя = person["заголовок"]
изображение = person["изображение"]
печать (имя, "|", изображение)
16. запросы на импорт
url = "https://unecon.ru/wp-json/unecon/v1/personalities/load?page=1"
заголовки = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/140.0.0.0 Safari/537.36"
)
}
response = requests.get(
url,
headers=headers,
timeout=10
)
# Превращаем JSON в Python
data = response.json()
# Узнаём количество страниц
pages = data["pages"]
print("Всего страниц:", pages)
# Перебираем все страницы
for page in range(1, pages + 1):
url = f"https://unecon.ru/wp-json/unecon/v1/personalities/load?page={page}"
response = requests.get(
url,
headers=headers,
timeout=10
)
data = response.json()
# Получаем список сотрудников
people = data["list"]
print("Страница:", page)
# Перебираем сотрудников
for person in people:
name = person["title"]
image = person["image"]
print(name, "|", image)