/crawler

A robot that copies the current site and searches for all hyperlinks and follows them.

Primary LanguagePythonMIT LicenseMIT

Скрипт для автоматического копирования веб-страниц

Репозиторий создан специально для видео Как скачать Интернет? YouTube канала Псевдо Программист. Превью v2

Использованные технологии:

  • Язык программирования Python 3.9
  • beautifulsoup4
  • pywebcopy
  • requests

Краулер:

Скрипт краулера работает по алгоритму с использованием рекурсии. Функция get_all_links принимает на вход ссылку на сайт, параметр глубины поиска и счётчик текущей глубины поиска (он изначально имеет значение 0). При помощи библиотек requests и BeautifulSoup мы получаем HTML код сайта. Программа проходиться по всем гиперссылкам. И для каждой найденной ссылки мы вновь вызываем функцию get_all_links, только на этот раз мы к счётчику глубины прибавляем единицу. Когда счётчик превысит установленную глубину поиска, то новые ссылки искаться не будут.

if __name__ == '__main__':
    start_url = " " # Необходимо указать стартовую веб-страницу

    links = get_all_links(start_url, 1) # Необходимо указать глубину поиска

Загрузчик веб-страницы

Для загрузки веб-страниц используется модуль pywebcopy, который способен сохранять HTML, CSS и JS выбранной страницы. Работа загрузчика веб-страниц представлена в функции save_page, которая принимает на вход ссылку. Помимо этого, необходимо указать путь до папки, куда будут сохраняться загруженные веб-страницы.

    save_webpage(
        url=url,
        project_folder="", # Путь до папки, куда будут сохраняться загруженные веб-страницы
        project_name=str(dir_name),
        open_in_browser=False, 
        threaded=True # Реализация асинхронной работы загрузчика
    )