Загрузка данных


.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)