Я знаю, что это немного старый вопрос. С тех пор появилось много полезных библиотек.
Дайте ему шанс Crawlzone . Это быстрый, хорошо документированный, асинхронный фреймворк для сканирования интернета с множеством замечательных функций:
- Асинхронное сканирование с настраиваемым параллелизмом.
- Автоматическое регулирование скорости сканирования в зависимости от загрузки просматриваемого веб-сайта.
- Если настроено, автоматически отфильтровывает запросы, запрещенные стандартом исключения robots.txt.
- Простая промежуточная система позволяет добавлять заголовки, извлекать данные, фильтровать или подключать любые пользовательские функции для обработки запроса и ответа.
- Богатые возможности фильтрации.
- Возможность задания глубины сканирования
- Легко расширить ядро, подключившись к процессу сканирования, используя события.
- Вы можете в любой момент выключить сканер и начать все заново, не теряя прогресса.
Также ознакомьтесь со статьей, которую я написал об этом:
https://www.codementor.io/zstate/this-is-how-i-crawl-n98s6myxm