Как легко и красиво собрать карту сайта?!

kyrtoff

Client
Регистрация
07.06.2012
Сообщения
33
Благодарностей
22
Баллы
8
Привет, Всем.
Я расскажу про свой шаблон, который позволит собирать карту любого сайта, не цепляя при этом какие-то другие внешние ссылки.
Также в шаблоне можно будет редактировать уровень вложенности, с какой страницы можно начать парсинг, и по какому именно домену собирать ссылки. Можно например собирать только ссылки поддомена.

Вид шаблона целиком:
D.png


Шаблон взаимодействует с тремя файлами:
A.png


temp.txt - содержит формат "ссылка для дальнейшей обработки;её уровень вложенности"
blacklist.txt - содержит "обработанная ссылка", чтобы не повторять обработку одних и тех же ссылок многократно
result.txt - содержит "ссылка|титл"



При первом запуске шаблона, необходимо чтобы файл result.txt был удален. Ибо при первом запуске первый запущенный поток идет на главную страницу при отсутствии файла, а иначе он пойдет в файл temp.txt, который по логике должен быть пуст. Сделанно для работы в многопоток, и чтобы при прерывании шаблона или перезагрузки инстанса можно было не начинать сначала.

Шаблон состоит из:
1.
Проверка первый ли это запуск
2. Переход страницу, получение информации со страницы (ссылки, титл)
3. Проверка отсутствия полученных ссылок в блеклисте, проверка удолитворению уровня вложенности

Расмотрим детальнее.

Входные настройки шаблона:
B.png


---------------------------------------------------------------
Проверяем наличие файла result.txt, если его нет, то создаем пустой result.txt и идем на главную, если есть, то значит у нас уже есть какие-то обработанные страницы, а значит и ссылки с этих страниц для обработки, которые будут лежать в temp.txt и следовательно идем на обработку файла temp.txt
F.png


---------------------------------------------------------------
Переходим на начальную страницу. Сохраняем её ссылку и титл в result.txt и просто ссылку в blacklist.txt
E.png


---------------------------------------------------------------
Увеличиваем счетчик вложенности. Что бы сохранять ссылки со страницы с тем уровнем вложенности который у них будет. Обнуляем счетчик внутренних ссылок на странице. Получаем href внутренней ссылки путем проставления обязательного атрибута href, которой должны содержать наш домен указанных во входных настройка.
Очищаем у урла всё со со знака #, чтобы отсечь ссылки ведущие на одни и теже страницы, но с фокусацией на разных участках.
G.png


---------------------------------------------------------------
Проверяем отсутствие полученного урла в blacklist (уже обработанные ранее).
Добавляем в blacklist. Добавляем в temp на обработку.
H.png


---------------------------------------------------------------
Берем ссылку с её уровнем вложенности, парсим с неё титл. Сохраняем в результат. Проверяем меньше ли её вложенность, максимально допустимому, если меньше, то начинаем парсить сссылки, чтобы получить ссылки с ещё более глубоким уровнем вложенности. Иначе берем следующую строку из temp.txt
I.png


Всё!
Шаблон прикрепил!
 
Тема статьи
Другое
Номер конкурса статей
Шестой конкурс статей

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
не совсем понял назначение блэклиста
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63

Semyon

Client
Регистрация
19.09.2016
Сообщения
43
Благодарностей
36
Баллы
18
А выходные данные для чего могут использоваться? И Есть ли красивый вывод данных на выходе... А том что-то запустил шаблон проверить и боюсь что на выходе у меня просто текстовый файл будет...
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А выходные данные для чего могут использоваться? И Есть ли красивый вывод данных на выходе... А том что-то запустил шаблон проверить и боюсь что на выходе у меня просто текстовый файл будет...
а чем страшен текстовик?)
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

А можно больше браузера использовать?
 
  • Спасибо
Реакции: Yuriy Zymlex и DenisK

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А я шаблона)))

Никогда подобное не делал)
Назначение - собрать всю структуру сайта. Зачем именно - тут уже у каждого свои причины. Я однажды хотел спереть все статьи с одного сайта. Карту сайта примерно таким же образом собрал, но так и не воспользовался ею)
 

Semyon

Client
Регистрация
19.09.2016
Сообщения
43
Благодарностей
36
Баллы
18
а чем страшен текстовик?)
Не знаю для меня понятия "Карта", сразу имеет одно значения, это визуально её понимать..
А можно больше браузера использовать?
Ну вот всегда так, я вот например тоже только учусь =) И тьфу тьфу меня пока помидорами за браузер не закидали.
 

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
289
Баллы
63
Назначение - собрать всю структуру сайта. Зачем именно - тут уже у каждого свои причины. Я однажды хотел спереть все статьи с одного сайта. Карту сайта примерно таким же образом собрал, но так и не воспользовался ею)
Ну теперь более понятно.. У меня просто не разу подобных задач не стояло, не сталкивался с таким.
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Легко и красиво парсить можно только на запросах.
 
  • Спасибо
Реакции: R3re

S10n4eg

Client
Регистрация
25.06.2014
Сообщения
256
Благодарностей
39
Баллы
28

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Ваше мнение очень важно для нас, оставайтесь на линии
Расскажите мне сколько по времени данный шаблон будет собирать в 1 потоке карту сайта на 120 00 страниц.
 

S16er1um

Client
Регистрация
14.04.2016
Сообщения
826
Благодарностей
240
Баллы
43
Ну вот всегда так, я вот например тоже только учусь =) И тьфу тьфу меня пока помидорами за браузер не закидали.
Если самый обычный примитивный сайт то с помощью GET\POST намного быстрее получиться. А суть та же самая. Просто парсим страничку через регулярку.
И если при WEB версии просто переход по страницам занимает 3-4 секунды, то через пост я за 3-4 секунды успею спарсить страниц 30, я думаю. и это если в один поток

Пока что не самая полезная статья из тех, что я видел, но и не самая бесполезная к сожалению (
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Если самый обычный примитивный сайт то с помощью GET\POST намного быстрее получиться. А суть та же самая. Просто парсим страничку через регулярку.
И если при WEB версии просто переход по страницам занимает 3-4 секунды, то через пост я за 3-4 секунды успею спарсить страниц 30, я думаю. и это если в один поток

Пока что не самая полезная статья из тех, что я видел, но и не самая бесполезная к сожалению (
боюсь, всё будет не так просто. Нужно будет анализировать ссылки, проверять, от корня они идут или с текущей вложенности. Немного придется потрудится. А через веб зеннопостер тебе сам всё проанализирует и отдаст)
 

Chick80

Client
Регистрация
04.12.2014
Сообщения
307
Благодарностей
83
Баллы
28
боюсь, всё будет не так просто. Нужно будет анализировать ссылки, проверять, от корня они идут или с текущей вложенности. Немного придется потрудится. А через веб зеннопостер тебе сам всё проанализирует и отдаст)
Не у каждого сайта есть человеческая карта. Маст хэв xml-карта. А для людей уже каждый как хочет перелинковку делает. Можно и без карты обойтись.
 
  • Спасибо
Реакции: kagorec

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Не у каждого сайта есть человеческая карта. Маст хэв xml-карта. А для людей уже каждый как хочет перелинковку делает. Можно и без карты обойтись.
именно потому что не у каждого есть готовый sitemap и приходится прибегать к подобным методам
 

vovain

Client
Регистрация
31.07.2015
Сообщения
183
Благодарностей
2
Баллы
18
оо мне пригодится, как раз встала подобная задача, надо внедрить в свой шаб
 

vovain

Client
Регистрация
31.07.2015
Сообщения
183
Благодарностей
2
Баллы
18
А как сделать чтобы он парсил ток с главной страницы?
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
ну а как же когда ссылки с относительным путём?
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
Шаблон не рабочий.
Первая ошибка в группе "Проверяем, обрабатывали ранее ссылку?", в кубике If - True с большой буквы.
Но и предыдущий кубик "свой код" не работает, дает true, когда ссылки такой в списке нету.
Если кто подскажет в чем загвоздка.....?
Ответ получен:
Мб неправильно реализован зеновский метод contains
используй
if(list.IndexOf(id)!=-1)
У меня давно давно была схожая проблема с контеинс и я перешёл на это решение
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)