• Как сделать ссылку на полное изображение?

    Mike_Ro
    @Mike_Ro
    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 на клиенте, кроссплатформенность.
    Ответ написан
    1 комментарий
  • Неизвестные скрипты на сайте (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 комментарий
  • Можно ли назначить разделитель для float input?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно ли назначить разделитель для float input?

    Нельзя, нужно изменить атрибут type на text.
    хотелось бы чтобы число разделяла не запятая, а точка, пример:
    10,200
    10.200

    Слушаем событие change у input, если видим символ ",", то заменяем на символ ".". Если замен предполагается больше, то лучше использовать imask.
    Ответ написан
    Комментировать
  • Насколько важно с точки зрения SEO иметь платный сертификат OV на сайте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Насколько важно с точки зрения SEO иметь платный сертификат OV на сайте?

    Не замечал разницы в ранжирование. Насколько я знаю, такие сертификаты нужны в первую очередь крупным финансовым организациям, но не с точки зрения SEO. Цифровые SSL сертификаты. Разновидности, как выбрать?
    Плюс раньше браузеры зелёненьким красивишно делали.

    Раньше да, но сейчас все стандартизированное "серое".
    Ответ написан
    Комментировать
  • Как полностью удалить сайт из индекса?

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

    Нужно подождать, пока поисковик обновит свою бд.
    Ответ написан
    Комментировать
  • Ведётся ли здесь статистика кликов "Отметить решением"? Если да, то каков процент тех вопрошающих, кто НЕ делает это?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ведётся ли здесь статистика кликов «Отметить решением»?

    Нет, но можно накатить отличное расширение Toster-Comfort, появится процент решений и многое другое. Обезьян можно добавлять в ЧС, но не хватает функции скрытия их вопросов, а так же, удаляю ответы без реакций (предположительно, ответ не помог сообществу).
    Но как мне кажется, куда чаще это происходит из-за наплевательского отношения к статистике и обратной связи. Ответ дан, прочитан, принят к сведению, и гуд-бай! А куда-то там кликать никто никого не обязывал.

    В целом, согласен (исключая новеньких, которые не понимают, зачем нужны эти кнопки). Стараюсь не отвечать на вопросы, если процент решения меньше 40% и самих вопросов несколько десятков.
    мало кто пользуется этой возможностью.

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

    Куратор тега может поместит вопрос решением, но автор вопроса все равно может снять решение.
    Ответ написан
    Комментировать
  • Как вывести колонку с определенной информацией sql?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. SELECT.
    2. FROM.
    3. WHERE.
    SELECT Id, Имя, Алгебра, Физика, Химия, История
    FROM marks
    WHERE Id = 1
    Ответ написан
    Комментировать
  • Как проверить если сообщение содержит фразу в vk_api python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    - Подписка на событие User Long Poll API.
    - Для ответа на сообщение используйте метод messages.send, передав при необходимости id сообщения, на которое нужно ответить.
    - Ну и обычное условие на проверку подстроки в строке.
    Ответ написан
  • Локатор не находит элемент на сайте, хотя набран верно, пробовал разные варианты, не помогает, в чём проблема?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Найти элемент (find_element_by...) shadow-root.
    2. Получить элемент JS скриптом (execute_script) из п1, т.к. selenium не умеет в shadow-root.
    3. Найти нужные элементы из п2. и делать с ними всякое.
    Ответ написан
    Комментировать