WOX.IN.UA - форум web розробників

Вітаємо на нашому форумі! Тут ви зможете обговорювати останні тенденції технологій, вирішувати завдання та обмінюватися досвідом з іншими розробниками.

WOX — це місце, де кожен може знайти щось корисне, навчитися новому та знайти відповіді на свої питання!

Стаття Як я створював каталог сайтів

  • Автор теми rullan
  • Дата створення
rullan

rullan

Новенький
Користувач

Хочу поділитись історією як створював свій Веб каталог сайтів.
Затрачений час: - 14 днів.
Створено версій: - 3 версії


Що реалізовано:
- автоматична провірка - яка намагається витягнути з сайту: тітл, дескріпшен, ключові слова, іконку, картинку og, NS, країну сервера, код відповіді
- Схожі сайти,
- Топ сайтів,
- Популярні сайти,
- останні сайти,
- генерація Sitemap,
- Лічильник сайтів, і лічильник переглядів,
- завантаження картинок,
- примітивна адмінка із сесійним захистом.

Проблеми в порядку їх складності:
1. текст, опис, ключові слова - 110 категорій описати щоб це виглядало змістовно і по темі.
2. картинки - виготовлення та оптимізація картинок для мобільної версії.
3. сортування по категоріям - 50% сайтів (2000штук) прийшлось прописувати категорію вручну
4. збір інформації про сайти - пов'язано із парсингом та записом.
5. html + css.

PHP код по складності.
1. Парсер для збору сайтів - так і не вирішив. Пішов шляхом завантаження сайтів на свій компютер за допомогою сторонніх рішень, а потім уже за допомогою PHP бібліотеки "libcurl" проходився по папкам і заганяв зміст з файлів у БД.
2. Завантаження картинки - як не дивно але виявилось складно реалізувати заванатження картинки - зменшення та переведення її в формат .webp. Копліот і ЧатДЖПТ - так і не допомогли, благо у мене були свої доробки і навіть свій клас для цієї потреби. (код внизу)
3. Впорядкування БД за допомогою SQL запитів - о тут уже класно допоміг ДЖПчат :).
4. Найбільше напрягся при створенні навігації по сторінкам категорії, області та навігації для головної - так я к у мене навігація зберігається в SSI файлах, а не витягуються вони з БД - тут відчув себе майже Сенйором який проектує патерни :)
5. AJAX запити до БД через JS так як досвід уже був прийшлось лише погратись із точкою входу та обробкою POST запитів.
6. Захист. Опишу етапи:
6.1 Неможливість введення в поле форми заборонених символів та команд SQL - реалізовано через JS.
6.2 Після тестування завжди вимикайте виведення помилок додавши на початок ваших PHP файлів "error_reporting(0);"
6.3 Все що приходить із форм спочатку очищається стандартними функціями і не тільки, наприклад:
function clearInput($inputString){
// Список слів і знаків для видалення
$wordsToRemove = ["'", "\"", "x\\", "--", "&", "#", "%", "+", "=", ";", ",", "*", "$", "!", "?", "prompt", "script", "DELETE", "FROM", "PDO", "SELECT", "[", "]", "{", "}", "(", ")", "<", ">", "\r", "\n", "\t", "INSERT"];

// Переводимо дані в нижній регістр для неповноти чутливості до регістру
//$lowercaseInput = mb_strtolower($inputString, 'UTF-8');

// Видаляємо заборонені слова
$filteredValue = str_ireplace($wordsToRemove, '', $inputString);

// Видаляємо небажані теги
$filteredValue = strip_tags($filteredValue);

// Використовуємо htmlspecialchars для уникнення XSS-атак
$filteredValue = htmlspecialchars($filteredValue, ENT_QUOTES, 'UTF-8');

// Використовуємо trim для видалення зайвих пробілів на початку і в кінці рядка
$filteredValue = trim($filteredValue);

return $filteredValue;
}

6.4 Захист від ботів, усі секрети не розповім але 99% відсіювання ботів забезпечує наявність поля для емейла - це поле скривається для користувачів через CSS, бажано через правила черги а не класи чи id, щоб скрипт бота не зрозумів що поле скрите.
Так ось боти завжди заповнюють емейл поля - тобто якщо прийшло поле заповнене - це БОТ.
Вигляд адмінки - дивіться на скріні (Просто водимо id сайті і відкривається поля для редагування).
:ninja: - переглянути третю версію каталога - https://goodwap.pp.ua
P.S. Буду радий якщо знайшли і вкажите на знайдені помилки на сайті...
 

Вкладення

  • admin.jpg
    admin.jpg
    111.7 КБ · Перегляди: 7
Bigmaster

Bigmaster

Новенький
Користувач

А прибуток ваш каталог буде приносити? Чому ви використовуєте безкоштовний домен, сайт прикольний, домен не дуже гарний. Успіхів, везіння!
 
  • Адміністратор
  • Модератор
  • #4
Доречі сайту не хватає більш сучасного дизайну і анімації, також можна реалізувати додаток який буде сам скрінити сайти щоб не завантажувати зображення вручну
 
rullan

rullan

Новенький
Користувач

Доречі сайту не хватає більш сучасного дизайну і анімації, також можна реалізувати додаток який буде сам скрінити сайти щоб не завантажувати зображення вручну
О доречі - за скріншоти - я так і не знайшов як за допомогою PHP - можна скріни сайтів робити.
Підскажите які варіанти є? Бажано JS або PHP
 
  • Адміністратор
  • Модератор
  • #6
О доречі - за скріншоти - я так і не знайшов як за допомогою PHP - можна скріни сайтів робити.
Підскажите які варіанти є? Бажано JS або PHP
Я колись писав каталог сайтів то використовував api s-shot, там все максимально просто
 
rullan

rullan

Новенький
Користувач

А прибуток ваш каталог буде приносити? Чому ви використовуєте безкоштовний домен, сайт прикольний, домен не дуже гарний. Успіхів, везіння!
Так прибуток він приносить в комплекті із іншими 4-ма каталогами, усього у мене зараз 6 каталогів . Я пропоную за 450 грн реєстрацію в 4 каталогах. Якщо сайт класний то додаю ще і платний каталог...
 
rullan

rullan

Новенький
Користувач

api s-shot - московський заблокований сервіс....
А взагалі на чому можна реалізувати знімання скрінів сайтів ?
 
  • Адміністратор
  • Модератор
  • #10
api s-shot - московський заблокований сервіс....
А взагалі на чому можна реалізувати знімання скрінів сайтів ?
На php точно не вийде реалізувати скриншотер бо потрібен запуск браузера, тільки використовувати api, наприклад google api чи інші
 
Bigmaster

Bigmaster

Новенький
Користувач

Воно нікому не потрібне, вибачте, але це так. Я також невдачник, зі своїми сайтами, треба думати головою.
Зараз й пошуковій системі ні кто дякую не говорить.
 
rullan

rullan

Новенький
Користувач

Воно нікому не потрібне, вибачте, але це так. Я також невдачник, зі своїми сайтами, треба думати головою.
Зараз й пошуковій системі ні кто дякую не говорить.
:geek: Це Вам хто сказав? Потрібно для СЕО і силочної маси - Сайти які я відновим мають вік більше 12 років - деякі і 20-ку....
На деяких сайтах силка коштує від 2000 до 8000 грн. В залежності від тематики і Ваги сайту. Наприклад по https://ahrefs.com/backlink-checker.
-----
Для тих хто надає регіональні послуги - бути в ТОП гугл ОЙ як актуально...
 
Останнє редагування модератором:
rullan

rullan

Новенький
Користувач

:ninja: ПИшемо в Гуглі - Каталог сайтів. Мої два зараз в топі:
https://ua-top.org.ua
https://ukr-site.org.ua
десь ще нижче - https://top25.lviv.ua
За минулий рік ці три заробили десь біля - 3000 грн. Решту я створив тільки в цьому році... Перспектива на майбутнє...
 

Вкладення

  • 2024-02-26_180846.jpg
    2024-02-26_180846.jpg
    74.3 КБ · Перегляди: 3
Bigmaster

Bigmaster

Новенький
Користувач

Ну добре, але відвідувачей у цих сайтів не багато, 3000 грн для цих сайтів теж, але це краще ніж нічого. Ладно, добре, удачі, всіх благ.
 
rullan

rullan

Новенький
Користувач

Ну добре, але відвідувачей у цих сайтів не багато, 3000 грн для цих сайтів теж, але це краще ніж нічого. Ладно, добре, удачі, всіх благ.
:) Сайти каталоги потрібні для "Силочних пірамід" - це їх основне призначення. Основні клієнти СЕОшники.
(y)Самі жирні клієнти на сьогодні - це ті хто просуває казино та онлайн ігри....
 
  • Адміністратор
  • Модератор
  • #18
Плюс цей каталог є персональним, туди я добавляю свої сайти та сайти які я використовую, цей каталог чисто для мене створенний. С яндекс каталогом, і бившим google не порівнювати.
Давайте без реклами в чужих темах, є розділ для того... Повідомлення видаляю
 
:ninja: ПИшемо в Гуглі - Каталог сайтів. Мої два зараз в топі:
https://ua-top.org.ua
https://ukr-site.org.ua
десь ще нижче - https://top25.lviv.ua
За минулий рік ці три заробили десь біля - 3000 грн. Решту я створив тільки в цьому році... Перспектива на майбутнє...
1725823457057.png лінки виглядають жахливо, додайте у css text-decoration: none;
 
Зверху Знизу