Задать вопрос
  • Как не нарушить закон при установке ПО клиентам?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Могу ли я установить ПО или ОС, а лицензию не ставить?

    Можете установить все что угодно, пока действует триал - все законно (если триал имеется), затем, приобрести лицензию (если требуется) и активировать ПО.
    Какие подводные камни?

    Если под "подводными камнями" имеется ввиду незаконная активация ПО (взлом, кряк итп), то:
    - УК РФ Статья 272. Неправомерный доступ к компьютерной информации.
    - УК РФ Статья 146. Нарушение авторских и смежных прав.

    Кстати, активация ПО лицензией, которая для этого не предназначена (например, лицензия windows за 100 рублей), так же попадает под статьи выше.
    Ответ написан
    1 комментарий
  • Почему получается подключить Core в Dockerfile?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял задачу (использовать одну общую либу Core для нескольких проектов), то я бы использовал 2 варианта:
    - Создание NuGet пакета (если Core изменяется не часто), затем подключаем его в любом проекте.
    - Или docker multi-stage builds (если Core изменяется часто).

    Пример docker multi-stage builds с авто сборкой Core lib + Api proj (поправить пути и наименования директорий при необходимости):
    # Build Core lib
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS core-build
    WORKDIR /src
    COPY ["../Core/Core.csproj", "./Core/"]
    RUN dotnet restore "./Core/Core.csproj"
    COPY ["../Core/", "./Core/"]
    RUN dotnet build "./Core/Core.csproj" -c Release -o /app/core
    
    # Build API proj
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS api-build
    WORKDIR /src
    COPY ["Service/API/API.csproj", "./Service/API/"]
    RUN dotnet restore "./Service/API/API.csproj"
    COPY ["Service/API/", "./Service/API/"]
    COPY --from=core-build /app/core /lib
    RUN dotnet build "./Service/API/API.csproj" -c Release -o /app/service
    
    # Create final image
    FROM mcr.microsoft.com/dotnet/aspnet:8.0
    WORKDIR /app
    COPY --from=api-build /app/service .
    ENTRYPOINT ["dotnet", "API.dll"]
    Ответ написан
    1 комментарий
  • Как создать шаблон вывода записей с произвольным типом?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    'has_archive' => true,

    - Для архивной страницы: /wp-content/themes/ваша-тема/archive-services.php
    - Для отдельной страницы: /wp-content/themes/ваша-тема/single-services.php
    'has_archive' => false,

    /wp-content/themes/ваша-тема/services.php
    Ответ написан
  • Как обновить верстку на NEXT.JS c Wordpress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Надо смотреть конкретный конфиг некста, но предположу, что никак. Скорее всего, фронт живет отдельной жизнью, используя api wp.
    в файловом менеджере на vps, где файлы самого next я нашел скрипт, который надо поменять, поменял его

    Так нельзя делать, т.к. это итоговая компиляция проекта. Вам необходимо вносить изменения в исходники некст проекта, затем билдить и экспортировать (если старый проект) проект как статику.
    Ответ написан
    7 комментариев
  • Почему сайт отображается некорректно?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Файл закэширован, попробуйте изменить:
    <link rel="stylesheet" href="./app/css/main.css">
    на
    <link rel="stylesheet" href="./app/css/main.css?v=1">
    Ответ написан
    3 комментария
  • После установки обновления phpstorm перестал запускаться. Как исправить?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Гугл подсказывает, что нужно прописать переменные среды. Вроде прописала, но все равно не запускается.
    Не подскажете, в чем может быть проблема?

    Это неважно, быстрее удалить ide, почистить все директории, где она хранит данные, перезагрузиться и поставить ide обратно.

    Перед удаление, не забудьте экспортировать конфиг со всеми настройками, чтобы потом его импортировать в свежую ide.
    Ответ написан
    7 комментариев
  • Каково критическое количество HTTP (ajax) запросов на сервер, как его расчитать?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Могу ли я получить примерное значение максимально-возможного числа запросов и/или пользователей, которых сможет поддерживать мой Django сервер?

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

    Если у Вас не асинхронный django, и не используется multiprocessing, то результат будет скромным, очень скромным.
    Ответ написан
  • Как сделать ссылку на полное изображение?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так (при необходимости, поправить регулярку и формирования нового тега):
    // functions.php or any plugin
    
    function test($content) {
        // Регулярка для поиска изображений
        $pattern = '/<img[^>]+src="([^"]+)"[^>]+>/';
        
        preg_match_all($pattern, $content, $m);
        if (isset($m[1])) {
            foreach ($m[1] as $i => $url) {
                // Получаем url "полного" изображения
                $full_url = preg_replace('/-\d+x\d+(\.\w+)$/', '$1', $url);
                
                // Изменяем стандартный <img/> на <a><img/></a>
                $r = '<a href="' . $full_url . '" target="_blank">' . $m[0][$i] . '</a>';
                $content = str_replace($m[0][$i], $r, $content);
            }
        }
        return $content;
    }
    
    add_filter('the_content', 'test');
    Ответ написан
    1 комментарий
  • На чём писать клиентское приложение с GUI?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Avalonia - если надо dotnet с обоих сторон и кроссплатформенность.
    - MAUI - если надо dotnet с обоих сторон и кроссплатформенность без линукса.
    - WebView2 - если надо dotnet на сервере, и css/html/js на клиенте, только винда.
    - ElectronJS или Tauri - любой сервер, css/html/js на клиенте, кроссплатформенность.
    Ответ написан
    3 комментария
  • Неизвестные скрипты на сайте (plupload и moxie). Для чего?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Это основные скрипты, которые входят в состав wp для обеспечения функциональности загрузки файлов:
    - plupload - загрузка файлов для wp.
    - moxie - расширение возможностей plupload.
    Ответ написан
  • Выбор: парсить на питоне с aiohttp, asyncio, bs4 или requests + bs4?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Помогите разложить это по полочкам.

    Зависит от задачи:
    1. aiohttp + asyncio - выполнение асинхронных http запросов, без блокировки основного потока. Когда надо спарсить множество страниц без защиты, а времени в обрез.
    2. requests + bs - выполнение синхронных http запросов, с блокировкой основного потока. Когда надо спарсить несколько страниц без защиты, и время не жмет.
    3. selenium - когда первые 2 легли на первой же "защите на дурака". Синхронно, медленно, ресурсоёмко, максимальная человечность.
    Ответ написан
    6 комментариев
  • Почему не срабатывает клик по элементу при открытии станицы selenium python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    parent_div = product_description_more.find_element(By.XPATH, './..')
    parent_div.click()

    Слушатель клика висит на span[aria-label="Все характеристики"], а не на родителе выше, как это понять:
    - Через инструменты разработчика браузера.
    - Удалив родителя из dom-ма и кликнув заново - обработчик работает.

    КартинкО

    Ищем обработчик:
    661f6ed41bc75628552858.png

    Находим родителя и удаляем его:
    661f6ca9ebb13701728853.png

    Смотрим, работает ли без родителя обработчик (работает):
    661f6caf4d5f0320289210.png
    Ответ написан
    Комментировать
  • Как парсить сайты на Wordpress в определённой доменной зоне?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Это должно быть что-то вроде робота, которые будет переходить от сайта к сайту по внутреннем ссылкам

    Что это за сайты, которые ставят ссылки на своих конкурентов? Исключая ссылки на источник.
    или лучше сделать парсинг поисковой выдачи

    Поисковой. Затем по косвенным признакам определять, используется ли wp или не.
    (но как тогда сделать выдачу максимально разнообразной, ведь у меня нет конкретного поискового запроса?)?

    - Спарсить из вордстата.
    - Спарсить из поисковых подсказок.
    - Придумать.
    Ответ написан
    Комментировать
  • Видит ли поисковая система ссылку в слайдере, если элемент за пределами экрана?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    Возник вопрос: если какой-то элемент слайдера за пределами видимости экрана, то видит ли робот поисковой системы ссылку этого элемента в коде?

    Робот видит все, через исходный код страницы, другой вопрос, индексирует ли? Могу сказать определенно, что индексация элементов не видимых реальному пользователю происходит гораздо хуже, чем видимых. К ним относятся:
    - Части элементов, скрытых за областью окна браузера.
    - Части элементов, перекрытых другими элементами (наложение друг на друга).
    - Элементы, скрытые CSS свойствами display: none; opacity: 0; overflow: hidden; итп.
    Ответ написан
    Комментировать
  • Можно ли сократить запись и как?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    [объект].forEach(a => a.addEventListener('click', f));

    Такое впечатление, что запись можно сократить еще больше. Нет?

    Но зачем?
    Ответ написан
  • Как реализовать индексацию страниц каталога с фильтрацией?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Поставить фильтр товаров, который сможет формировать get запрос. Соответсвенно, магазин должен отвечать на этот запрос и формировать выдачу с запрошенными товарами.
    2. Переписать шаблон поиска товаров так, чтобы он подставлял все необходимые данные в title, h1 и прочие важные seo элементы. Так же, переписать формирование микроразметки для более точечного отображения ссылки, рейтинга итп в поиске.
    3. Заранее создать маршруты из п1. так, чтобы они были доступны для индексации.
    4. Проследить, чтобы в меню и sitemap были проставлены ссылки на п3.

    Либо, воспользоваться плагинами, искать примерно так - woocommerce filtering with save url params (Premmerce WooCommerce Product Filter).
    Ответ написан
    Комментировать
  • Как искать за переделённый период?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В гугл есть функция поиска за месяц, за неделю, за день, но мне бы наоборот.

    Наоборот

    6617e36b1dc9d892889633.png

    6617e37229324063684547.png
    Ответ написан
    2 комментария
  • Какой актуальный стек верстки 2024?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. WebPack/Vite.
    2. CSS Modules (производительность и серверный рендеринг).
    3. Шаблонизатор по типу Handlebars или EJS (множество страниц, использование компонентов, проброс параметров итп).
    4. Bootstrap/Tailwind если надо быстро (но я обычно этот навоз не использую, руками быстрее и css и js написать).
    5. Flex/Grid.
    Ответ написан
  • Как сопоставлять товары при парсинге?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    0. Тренируем нейронку распознавать товары, материалы по Вашей теме:
    0.1. https://habr.com/ru/companies/stm_labs/articles/708608/
    0.2. https://new-retail.ru/business/e_commerce/price_ru...
    0.3. Сравнение текстовых описаний через методы обработки естественного языка (NLP), такие как TF-IDF, word2vec, BERT для извлечения смысла и семантического сравнения текстов (Spacy, Hugging Face Transformers и другие библиотеки NLP для анализа текста).
    0.4. Анализ изображений товаров с помощью сверточных нейронных сетей (CNN), которые могут выявлять визуальные сходства между изображениями товаров, даже если они отличаются углом съемки, освещением или масштабом (OpenCV и TensorFlow).
    0.5. Графовые базы данных и алгоритмы, которые могут использоваться для идентификации связей между товарами на основе их атрибутов и отношений.
    1. Нейронка из п0. распознает товары.
    2. Человек в случайном порядке проверяет работу нейронки из п1. и при необходимости, сообщает ей её ошибки. Таким образом происходит дообучение нейронки уже в процессе работы.

    Либо, использовать поисковые движки (с его возможностями полнотекстового поиска и сопоставления), по типу Elasticsearch или OpenSearch (получая наибольшую вероятность сопоставления).
    Ответ написан
    5 комментариев
  • Как заменить данный кусок кода на более универсальный?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял, то:
    def check_message(message, keywords):
        for word in keywords:
            if word in message.text.lower():
                return True
        return False
    
    a = check_message(message, wordse)
    b = check_message(message, wordsg)
    Ответ написан
    1 комментарий