Download test_scraper.py from greeta/scraper: direct link, hf CLI and curl.
- Browser
- Download file 3.4 kB
-
https://huggingface.co/spaces/greeta/scraper/resolve/main/test_scraper.py
- Command line
-
hf download hf://spaces/greeta/scraper/test_scraper.py
-
curl -L -o test_scraper.py https://huggingface.co/spaces/greeta/scraper/resolve/main/test_scraper.py
3.4 kB
| """ | |
| Тест для проверки работы скрапера | |
| """ | |
| import asyncio | |
| import sys | |
| from bs4 import BeautifulSoup | |
| from scraper import FIPIScraper | |
| async def test_scraper(): | |
| """Тестирование скрапера""" | |
| scraper = FIPIScraper(base_url="https://fipi.ru") | |
| print("=" * 50) | |
| print("Тестирование скрапера ФИПИ") | |
| print("=" * 50) | |
| # Тест 1: Проверка главной страницы | |
| print("\n1. Проверка главной страницы...") | |
| html = await scraper.fetch_page("https://fipi.ru") | |
| if html: | |
| print(f" ✅ Главная страница получена (длина: {len(html)} символов)") | |
| else: | |
| print(" ❌ Не удалось получить главную страницу") | |
| return | |
| # Тест 2: Парсинг главной страницы | |
| print("\n2. Парсинг главной страницы...") | |
| task = scraper.parse_task_page(html, "https://fipi.ru") | |
| if task: | |
| print(f" ✅ Заголовок: {task['title'][:100] if task['title'] else 'N/A'}") | |
| print(f" ✅ Тип задания: {task['task_type']}") | |
| else: | |
| print(" ❌ Не удалось распарсить страницу") | |
| # Тест 3: Проверка страницы с ЕГЭ | |
| print("\n3. Проверка страницы ЕГЭ...") | |
| html = await scraper.fetch_page("https://fipi.ru/ege") | |
| if html: | |
| print(f" ✅ Страница ЕГЭ получена (длина: {len(html)} символов)") | |
| task = scraper.parse_task_page(html, "https://fipi.ru/ege") | |
| if task: | |
| print(f" ✅ Заголовок: {task['title'][:100] if task['title'] else 'N/A'}") | |
| else: | |
| print(" ❌ Не удалось получить страницу ЕГЭ") | |
| # Тест 4: Проверка банка заданий ЕГЭ | |
| print("\n4. Проверка банка заданий ЕГЭ...") | |
| html = await scraper.fetch_page("https://fipi.ru/ege/otkrytyy-bank-zadaniy-ege") | |
| if html: | |
| print(f" ✅ Страница банка заданий ЕГЭ получена (длина: {len(html)} символов)") | |
| # Пробуем найти ссылки на задания | |
| soup = BeautifulSoup(html, 'lxml') | |
| links = [a['href'] for a in soup.find_all('a', href=True) if '/ege/' in a['href']] | |
| print(f" ✅ Найдено ссылок в банке заданий: {len(links)}") | |
| if links: | |
| print(f" 📋 Примеры ссылок: {links[:5]}") | |
| else: | |
| print(" ❌ Не удалось получить страницу банка заданий ЕГЭ") | |
| # Тест 5: Скрапинг заданий по предмету | |
| print("\n5. Скрапинг заданий по русскому языку...") | |
| tasks = await scraper.scrape_tasks(subject="russian") | |
| print(f" {'✅' if tasks else '⚠️'} Найдено заданий: {len(tasks)}") | |
| for i, task in enumerate(tasks[:3], 1): | |
| print(f" {i}. {task.get('title', 'Без названия')[:80]}") | |
| print("\n" + "=" * 50) | |
| print("Тестирование завершено") | |
| print("=" * 50) | |
| if __name__ == "__main__": | |
| asyncio.run(test_scraper()) | |