Задать вопрос
  • Как перенести сайт (wordpress) на beget?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    2 варианта:
    - https://developer.wordpress.org/advanced-administr...
    - Поставить плагин Akeeba Backup на работающем wp > создать бэкап сайта > закинуть .tar в директорию домена нового хостинга > запустить инсталлятор newdomen.ru/installation.
    Ответ написан
    Комментировать
  • Как добавить отступы между файлами VSCode?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как в VSCode увеличить отступ подпапок( и подфайлов) в дереве файлов?
    https://stackoverflow.com/questions/55310734/how-t...

    Вообще, т.к. VS Code это ElectronJS приложение, соответственно нужно открыть инструменты разработчика в VS Code, найти нужные стили структуры проекта и прописать в кастомном css нужные отступы. Можно использовать готовые плагины, этот или этот.
    Ответ написан
    Комментировать
  • Почему переменная all_participants принимает только 10000 значений, а не больше при парсинге?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему переменная all_participants принимает только 10000 значений, а не больше при парсинге?

    "Особенность" Telethon
    Ответ написан
    Комментировать
  • Не подключается jquery и файлы js в Word Press. В чем причина ошибки?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Элементы массива должны быть в виде строк:
    // wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array('jquery'), null, true );

    Зачем Вам 2 одинаковых slick.js?
    // wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.js', array(jquery), 'null', true );
    wp_enqueue_script( 'slick', get_template_directory_uri() . '/assets/js/slick.min.js', array(jquery), 'null', true );

    Стили хорошо бы подключать в шапке, а скрипты в подвале, вот финальный код:
    <?php
    add_action('wp_enqueue_scripts', function () {
        // styles
        wp_enqueue_style('style', get_template_directory_uri() . '/assets/css/style.css');
        wp_enqueue_style('media', get_template_directory_uri() . '/assets/css/media.css');
        wp_enqueue_style('slick-style', get_template_directory_uri() . '/assets/css/slick.css');
    
        // jquery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js', [], null, true);
        wp_enqueue_script('jquery');
    
        // scripts
        wp_enqueue_script('slick', get_template_directory_uri() . '/assets/js/slick.min.js', ['jquery'], null, true);
        wp_enqueue_script('main', get_template_directory_uri() . '/assets/js/main.js', ['jquery'], null, true);
    });
    
    add_theme_support('post-thumbnails');
    add_theme_support('title-tag');
    add_theme_support('custom-logo');
    ?>
    Ответ написан
    5 комментариев
  • Как узнать, какой компонент отвечает за выбранный DOM элемент?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как сделать в питоне отступ (одна пустая строчка) между разными сериями списка?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Спрашиваем (получаем) > сортируем > ищем первые 3 символа > вставляем пустой ряд:
    lst = []
    
    while True:
        item = input('Введите 6-значное число: ')
        if len(item) != 6:
            break
        lst.append(int(item))
    
    # sorting
    lst.sort()
    
    prev = None
    for num in lst:
        nums = str(num)[:3]  # first 3 numbers
        if nums != prev:
            print()  # print empty row
            prev = nums
        print(num, end=' ')
    Ответ написан
    1 комментарий
  • Как сохранять процесс обработки данных словаря в python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    а если запустить цикл повторно, файл в котором хранятся просмотренные фильмы перезаписывается

    Вы перезаписываете весь файл целиком каждый раз:
    with open('iwatch.txt', 'w', encoding='utf-8') as f:

    Предположу, что Вы хотите писать новые данные в конец файла:
    with open('iwatch.txt', 'a', encoding='utf-8') as f:

    Полный код:
    import random
    import json
    
    # file
    try:
        with open('films.json', 'r', encoding='utf-8') as f:
            films = json.load(f)
    except FileNotFoundError:
        films = {}
    
    # save
    def save(films):
        with open('films.json', 'w', encoding='utf-8') as f:
            json.dump(films, f, ensure_ascii=False, indent=4)
    
    # main
    def main():
        while True:
            random_film_key = random.choice(list(films))
            film_value = films.get(random_film_key).replace(',', '\n')
            print("Фильм: " + random_film_key, "Описание фильма: " + film_value, sep='\n')
    
            # а где вариант 3 (ya est' Grut)?
            q = input("Ты смотрел этот фильм? да - 1, нет - 0, выход - любая другая клавиша \n")
    
            if q == '1':
                with open('iwatch.txt', 'a', encoding='utf-8') as f:
                    f.write(random_film_key + '\n')
                del films[random_film_key]
                save(films)
            elif q == '0':
                continue
            else:
                break
    
    # run
    main()
    Ответ написан
    6 комментариев
  • Как добавить график на страницу Razor?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Если не сложно, добавьте пример самого графика. Как добавить туда значения - я как-нибудь доковыляю сам.

    Пример из библиотеки Plotly.Blazor https://github.com/LayTec-AG/Plotly.Blazor#usage
    Ответ написан
    Комментировать
  • Как переделать структру сайта без существенных потерь?

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

    Верно, но не совсем. У конкурентов из выдачи нужно было скопировать все возможные нюансы + улучшить их на пару процентов, а не только СЯ.
    В связи с этим есть вопрос: целесообразно и возможно ли переделать всю структуру сайта? У страниц же будут другие адреса, будет путаница в индексации и множество ошибок.

    Целесообразно. Переделывайте структуру, а на новые адреса со старых ставьте 301 редирект.
    Или проще сделать новый сайт на новом домене?

    Как хотите, но я бы решал по 1 задаче за раз.
    Ответ написан
    3 комментария
  • Как называется сцециалист, который может найти нишу для продукта?

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

    Той, которая уже использует Obsidian/Notion?
    Ответ написан
  • Насколько приемлема такая проверка на четность (делимость) в Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Но разве это не ужасно нечитаемо?

    Зависит от правил установленных при разработке. Как по мне - вполне нормально.
    Ответ написан
    Комментировать
  • Одноклассники спамят в метрике и статистике?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Влияет ли это на поведенческий фактор?

    Влияет, а вот насколько - другой вопрос.
    Ответ написан
    Комментировать
  • Можно ли проверить возможность редактирования на стороне клиента?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    корректна проверка на фронте

    Все проверки связанные с безопасностью - необходимо производить на бэке. Вы в любом случае должны осуществлять вторичную проверку на бэке всего того, что юзверь понаписал на фронте.
    Бэк на Go, поэтому SSR здесь не получится использовать

    На nextjs получится.
    Ответ написан
    8 комментариев
  • Чем заменить require чтобы оно работало в браузере?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Если под "браузером" понимается html страница, то вместо require - подключите библиотеки в html, например:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/1.6.0/axios.min.js" integrity="sha512-WrdC3CE9vf1nBf58JHepuWT4x24uTacky9fuzw2g/3L9JkihgwZ6Cfv+JGTtNyosOhEmttMtEZ6H3qJWfI7gIQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/cheerio/0.22.0/index.js" integrity="sha512-+obmGUxyA+OfXW4RU7Ez2JBbCFy+dmZatW/Z5u/PDZlY+SKzAMSHzpNfTDohw7RFfW+zmLrI9h19XiODWZRO5A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    
    <script>
    const parse = async () => {
        const getHTML = async (url) => {
            const { data } = await axios.get(url);
            return cheerio.load(data);
        };
    
        const $ = await getHTML("https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585");
        const pageNumber = parseInt($('a.pagination__link').eq(-1).text());
    
        for (let i = 1; i <= pageNumber; i++) { // Виправлено умову циклу
            const selector = await getHTML(
                `https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585&page=${i}` // Виправлено номер сторінки
            );
            selector('.catalog-grid__cell').each((index, element) => { // Виправлено параметри функції each
                const title = selector(element).find('.goods-tile__title').text();
                console.log(title, link); // Додано вивід посилання
            });
        }
    };
    
    parse();
    </script>

    Библиотеки должны быть загружены раньше Вашего скрипта.
    Ответ написан
  • Автоматический поиск цен на сайте в карточке товара?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть какой-то способ который находит цену на сайте в карточке товара, автоматический даже можно с помощью ИИ?

    Есть, можно написать нейронку, которая либо будет распознавать цену со скрина, либо искать ее в исходнике странице. Т.к. у Вас слишком не конкретный вопрос, то ответ соответствующий.
    Дело в том, что бывает карточки товаров отличаются немного друг от друга и нужно указывать несколько селекторов, это замедляет процесс.

    У Вас сотни магазинов? Даже если это виртуальный DOM, то все равно не вижу проблем по поиску цены без использования нейронок.
    Ответ написан
  • Какой монитор выбрать для разработки и 3D графики?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Самый главный критерий - бюджет, про который Вы не сказали.

    На его смену хочу взять побольше размером 27-28, с разрешением 2k.

    2к - это минималка, чтобы слепой с метра не заметил пикселей на мониторе. О какой графике Вы говорите?
    смысла брать 4k и 30 дюймовые наверное нет...

    Минимум 4к, тк. ppi должен быть выше 150.
    Минимум rgb 100%. Конечно лучше мерить в srgb, но тут как получится.

    Т.к. про бюджет Вы ничего не сказали, то предположу, что пару тысяч баксов у Вас рядом с мусоркой валяются. Тогда лучше oled, чем ips.

    Хорошая статья, хоть и времен мамонтов.
    Ответ написан
  • Как найти точный url сайта на javascript?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Пользуюсь сайтом написаном на javascript

    SPA?
    Можно ли както узнать url и заходить через него в интересующиеся разделы напрямую.

    Если js настроен на обработку url параметров, то можно, но учитывая, что url не меняется, то вероятнее всего нет.

    Дайте ссылку на сайт, тогда ответ будет точнее.
    Ответ написан
  • Как преобразовать файлы с именами в числа?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Самый старый файл - первый:
    import os
    import glob
    
    # sort by change date
    def sort(path, ext="*.jpg"):
        files = glob.glob(os.path.join(path, ext))
        files.sort(key=os.path.getmtime)
        return files
    
    # rename files
    def rename(path):
        _sorted = sort(path)
    
        for i, file_path in enumerate(_sorted, 1):
            folder, old_name = os.path.split(file_path)
            new_name = f"{i}.jpg"
            new_path = os.path.join(folder, new_name)
    
            os.rename(file_path, new_path)
            print(f"Rename {old_name} to {new_name}")
    
    if __name__ == "__main__":
        # path to dir with images
        folder_path = "/path/to/dir/images"
        rename(folder_path)
    Ответ написан
    5 комментариев
  • Можно ли как то отследить элемент JS?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Просто блок div c классом

    Класс js-pagination-item

    Из автора вопроса, спустя несколько уточняющих вопрос - все таки получилось добыть разведданные, ими оказался элемент с селектором div.js-pagination-item.

    Заюзаем MutationObserver (как предложит тов. Rsa97):
    // wait dom loaded
    document.addEventListener('DOMContentLoaded', () => {
      // observer
      const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
          if (mutation.addedNodes.length > 0) {
            mutation.addedNodes.forEach((node) => {
              // target element
              if (node.nodeType === 1 && node.classList.contains('js-pagination-item')) {
                // print in the console log
                console.log('Detected element!');
              }
            });
          }
        });
      });
    
      // start
      observer.observe(document.body, {childList: true, subtree: true});
    });

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

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Т.к. в вопросе не указаны:
    - Требования по соблюдению вложенности и параметров url;
    - Тип редиректа;
    - Расположение .htaccess.

    То напишу 2 варианта (с и без вложенности и параметров), а оба варианта будут использовать 301 редирект.

    Предполагается, что .htaccess находится в корневой директории домена:

    # 123.ru > redirect 301 > http://12345.ru,
    # 123.ru/?test=123 > redirect 301 > http://12345.ru,
    # 123.ru/cats/?test=123 > redirect 301 > http://12345.ru:
    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^123\.ru [NC]
    RewriteRule ^(.*)$ http://12345.ru/ [L,R=301]

    # 123.ru > redirect 301 > http://12345.ru,
    # 123.ru/?test=123 > redirect 301 > http://12345.ru/?test=123,
    # 123.ru/cats/?test=123 > redirect 301 > http://12345.ru/cats/?test=123:
    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^123\.ru [NC]
    RewriteRule ^(.*)$ http://12345.ru/$1 [L,R=301]

    UPD: вариант с перенаправлением любого маршрута (втч. с url параметрами) на 12345.ru:
    # 123.ru/cats/?test=123 > redirect 301 > http://12345.ru:
    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^123\.ru [NC]
    RewriteRule ^(.*)$ http://12345.ru/ [L,R=301]
    Ответ написан
    2 комментария