Каталог решений - Как я парсил сайт

Как я парсил сайт

Как я парсил сайт

В наличии

Получение данных с сайта, сохранение постов, вывод html-документа в табличный документ с обработкой.

Категория:

Описание

Я никогда по работе не сталкивался с задачами получения данных c сайта или из html-документа. А тут появилась "личная" задача, решил попробовать.

У меня есть сын, после рождения которого мы с супругой по мере возможности писали в блог, расположенный на сайте diary.ru, всё, что с ним и нами происходило. Временной период — 10 лет. И нам захотелось сделать из этого книгу в малотиражной типографии. Сначала супруга вручную начала переносить записи в Ворд, но, во-первых, яжпрограммист — можно же автоматизировать, а во-вторых, хотелось попробовать несколько макетов, а с Вордом это проблематично.

Почитав Инфостарт и другие интернеты, я понял, что общий принцип одинаковый, но из-за того, что каждый сайт по своему уникален, написать более-менее автоматический алгоритм не получится. В конфигурации, которая приложена к публикации, я хотел сделать универсальный механизм с настройкой получаемых данных, но убедившись, что даже на самом сайте можно сделать разные настройки для своего дневника, бросил эту затею и сделал по конкретную разметку. Хотя, универсальность всё же присутствует.

 

 

В самом парсере вводится самая первая страница, с которой нужно начать процесс, общее количество страниц дневника (если будет введено больше, чем нужно — не беда), ну и количество постов на странице, т.к. оно может быть разным.

Уже после того, как всё было готово, все записи были в конфигурации, я попробовал спарсить несколько случайных дневников. Если структура не сильно отличается от структуры нашего дневника, парсер работает и для других дневников diary.ru.

При парсинге сохраняется разметка, форматирование (жирный, курсив, offtop), сохраняются картинки.

Для хранения форматированного текста я воспользовался данной статьёй //sale.itcity.ru/public/273123/

Для загрузки картинок идеей из статьи //sale.itcity.ru/public/257266/

Сам парсер построен на объекте ПостроительDOM. Текст процедуры в спойлере. 

 

 

has been added to your cart:
Оформление заказа