Собственная Поисковая Система Дистрибутивов The Pirate Bay.

В последнее время на хабе стал популярным делать собственные поисковые системы от РуТрекера.

Для меня это показалось отличным поводом отойти от скучной предпринимательской разработки и попробовать что-то новое.



Собственная поисковая система дистрибутивов The Pirate Bay.

Итак, задача: реализовать поисковую систему на базе The Pirate Bay на локальном хосте и заодно опробовать, что такое фронтенд-разработка и для чего она используется.

Задача усложняется тем, что TPB не публикует свои дампы, в отличие от РуТрекера, и для получения дампов нужно парсить их сайт. Погуглив и поняв проблему, я решил использовать Эластичный поиск , для которого пишите только клиентский интерфейс AngularJS .

Чтобы получить данные, я решил написать в индекс собственный парсер сайта TPB и отдельный загрузчик дампов, оба на Go. Пикантность выбору придавал тот факт, что я никогда раньше не прикасался ни к Elasticsearch, ни к AngularJS, и опробовать их было моей настоящей целью.



Парсер

Беглый просмотр веб-сайта TPB показал, что каждый торрент имеет собственную страницу «/torrent/{id}».

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

Практика показала, что id не увеличивается монотонно и не у каждого id есть корректная страница с торрентом, что требовало дополнительной проверки и пропуска id. Поскольку парсер предполагает работу с сетью в несколько потоков, выбор Go был очевиден.

Для анализа HTML я использовал модуль Гокери .



Собственная поисковая система дистрибутивов The Pirate Bay.

Парсер довольно простой: сначала запрашивается «/recent» и получается из него максимальный id: Получаем последний идентификатор

   

func getRecentId(topUrl string) int {

Теги: #angularjs #elasticsearch #The Pirate Bay #Go #torrent-search #search #torrents #Go #angular
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.