greeta commited on
Commit
55cbb47
·
verified ·
1 Parent(s): 088ae30

Upload test_scraper.py

Browse files
Files changed (1) hide show
  1. test_scraper.py +75 -0
test_scraper.py ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Тест для проверки работы скрапера
3
+ """
4
+
5
+ import asyncio
6
+ import sys
7
+ from bs4 import BeautifulSoup
8
+ from scraper import FIPIScraper
9
+
10
+
11
+ async def test_scraper():
12
+ """Тестирование скрапера"""
13
+ scraper = FIPIScraper(base_url="https://fipi.ru")
14
+
15
+ print("=" * 50)
16
+ print("Тестирование скрапера ФИПИ")
17
+ print("=" * 50)
18
+
19
+ # Тест 1: Проверка главной страницы
20
+ print("\n1. Проверка главной страницы...")
21
+ html = await scraper.fetch_page("https://fipi.ru")
22
+ if html:
23
+ print(f" ✅ Главная страница получена (длина: {len(html)} символов)")
24
+ else:
25
+ print(" ❌ Не удалось получить главную страницу")
26
+ return
27
+
28
+ # Тест 2: Парсинг главной страницы
29
+ print("\n2. Парсинг главной страницы...")
30
+ task = scraper.parse_task_page(html, "https://fipi.ru")
31
+ if task:
32
+ print(f" ✅ Заголовок: {task['title'][:100] if task['title'] else 'N/A'}")
33
+ print(f" ✅ Тип задания: {task['task_type']}")
34
+ else:
35
+ print(" ❌ Не удалось распарсить страницу")
36
+
37
+ # Тест 3: Проверка страницы с ЕГЭ
38
+ print("\n3. Проверка страницы ЕГЭ...")
39
+ html = await scraper.fetch_page("https://fipi.ru/ege")
40
+ if html:
41
+ print(f" ✅ Страница ЕГЭ получена (длина: {len(html)} символов)")
42
+ task = scraper.parse_task_page(html, "https://fipi.ru/ege")
43
+ if task:
44
+ print(f" ✅ Заголовок: {task['title'][:100] if task['title'] else 'N/A'}")
45
+ else:
46
+ print(" ❌ Не удалось получить страницу ЕГЭ")
47
+
48
+ # Тест 4: Проверка банка заданий ЕГЭ
49
+ print("\n4. Проверка банка заданий ЕГЭ...")
50
+ html = await scraper.fetch_page("https://fipi.ru/ege/otkrytyy-bank-zadaniy-ege")
51
+ if html:
52
+ print(f" ✅ Страница банка заданий ЕГЭ получена (длина: {len(html)} символов)")
53
+ # Пробуем найти ссылки на задания
54
+ soup = BeautifulSoup(html, 'lxml')
55
+ links = [a['href'] for a in soup.find_all('a', href=True) if '/ege/' in a['href']]
56
+ print(f" ✅ Найдено ссылок в банке заданий: {len(links)}")
57
+ if links:
58
+ print(f" 📋 Примеры ссылок: {links[:5]}")
59
+ else:
60
+ print(" ❌ Не удалось получить страницу банка заданий ЕГЭ")
61
+
62
+ # Тест 5: Скрапинг заданий по предмету
63
+ print("\n5. Скрапинг заданий по русскому языку...")
64
+ tasks = await scraper.scrape_tasks(subject="russian")
65
+ print(f" {'✅' if tasks else '⚠️'} Найдено заданий: {len(tasks)}")
66
+ for i, task in enumerate(tasks[:3], 1):
67
+ print(f" {i}. {task.get('title', 'Без названия')[:80]}")
68
+
69
+ print("\n" + "=" * 50)
70
+ print("Тестирование завершено")
71
+ print("=" * 50)
72
+
73
+
74
+ if __name__ == "__main__":
75
+ asyncio.run(test_scraper())