|
Download FIXES.md from greeta/scraper: direct link, hf CLI and curl.
- Browser
- Download file 2.49 kB
-
https://huggingface.co/spaces/greeta/scraper/resolve/main/FIXES.md
- Command line
-
hf download hf://spaces/greeta/scraper/FIXES.md
-
curl -L -o FIXES.md https://huggingface.co/spaces/greeta/scraper/resolve/main/FIXES.md
2.49 kB
| # Исправления скрапера ФИПИ | |
| ## Найденные проблемы | |
| 1. **Неверные URL-адреса** - скрапер использовал несуществующие адреса: | |
| - ❌ `/oge/demo/oge-russian` → 404 | |
| - ❌ `/ege/demo/ege-russian` → 404 | |
| - ✅ Исправлено на: `/ege/otkrytyy-bank-zadaniy-ege`, `/oge/otkrytyy-bank-zadaniy-oge` | |
| 2. **SSL ошибки для поддоменов** - `ege.fipi.ru` и `oge.fipi.ru` требовали отключения проверки SSL | |
| 3. **Парсинг заголовков** - заголовки не извлекались из-за неправильного селектора | |
| ## Внесенные исправления | |
| ### 1. Обновлены URL-адреса в `scrape_tasks()` | |
| ```python | |
| urls_to_scrape = [ | |
| "https://fipi.ru/ege/otkrytyy-bank-zadaniy-ege", | |
| "https://fipi.ru/oge/otkrytyy-bank-zadaniy-oge", | |
| ] | |
| ``` | |
| ### 2. Отключена проверка SSL в `fetch_page()` | |
| ```python | |
| ssl_context = ssl.create_default_context() | |
| ssl_context.check_hostname = False | |
| ssl_context.verify_mode = ssl.CERT_NONE | |
| ``` | |
| ### 3. Улучшен парсинг в `parse_task_page()` | |
| - Добавлен селектор `.content h1` для заголовков | |
| - Добавлено извлечение из `<title>` если h1 пустой | |
| - Добавлено извлечение ссылок на задания | |
| - Очистка от скриптов, стилей, nav, header, footer | |
| ### 4. Добавлено скачивание вложенных заданий | |
| Теперь скрапер переходит по найденным ссылкам и скачивает дополнительные задания. | |
| ## Результат | |
| | До исправления | После исправления | | |
| |----------------|-------------------| | |
| | 0 заданий | 12 заданий | | |
| | 404 ошибки | 200 OK | | |
| | "Без названия" | Правильные заголовки | | |
| ## Запуск теста | |
| ```bash | |
| cd ai-scraper | |
| python test_scraper.py | |
| ``` | |
| ## Использование | |
| ```python | |
| from scraper import FIPIScraper | |
| import asyncio | |
| async def main(): | |
| scraper = FIPIScraper() | |
| tasks = await scraper.scrape_tasks(subject="russian") | |
| print(f"Найдено заданий: {len(tasks)}") | |
| for task in tasks: | |
| print(f"- {task['title']}: {task['source_url']}") | |
| asyncio.run(main()) | |
| ``` | |