• Что означает проверка $_GET['debug_updates']?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Если свойство debug_updates отсутсвует в ассоциативном массиве $_GET.

    Если совсем простым языком, то - если параметр debug_updates не установлен в url, то выполнить следующий блок кода.
    Ответ написан
    Комментировать
  • Как решить проблему с автоматическим решением капчи в selenium?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: stale element not found
    (Session info: chrome=120.0.6099.130); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/t...

    Изучаем ссылку, скорее всего, либо обновление dom, либо неправильная работа с контекстом. Чтобы понять, что dom изменился - достаточно получить элемент еще раз, тут проблем нет, а вот с контекстом интереснее:
    if driver.find_elements(By.CSS_SELECTOR, 'div.captchaContainer_c3b486 iframe'):
        hcaptcha_iframe = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div.captchaContainer_c3b486 iframe')))
    
        # Переключили контекст на фрейм.
        driver.switch_to.frame(hcaptcha_iframe)
    
        # Не верно! Мы сменили контекст на hcaptcha_iframe,
        # в нашем новом контексте нет элемента, на который ссылается hcaptcha_iframe,
        # а значит, оптимальнее обратиться к driver.
        #
        # site_key = hcaptcha_iframe.get_attribute('src').split('sitekey=')[1].split('&')[0]
    
        # Вот теперь правильно.
        site_key = driver.find_element(By.TAG_NAME, 'iframe').get_attribute('src').split('sitekey=')[1].split('&')[0]
    
        driver.switch_to.default_content()
    Ответ написан
    Комментировать
  • Как заставить питон вывести текст, содержащий \r, без переноса строки?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Raw strings
    print(r"Raw \r strings") # Raw \r strings
    Ответ написан
    1 комментарий
  • Десериализовать массив JSON?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Насколько я помню, для десериализации массива строк json в List не требуется передавать отдельный класс DeserializationJson, можно использовать сразу JsonSerializer.Deserialize<List<string>>, попробуйте так:
    using System.Text.Json;
    
    namespace ReflTest;
    
    internal class DesJson
    {
        public IEnumerable<string> RunDesir(string jsonString)
        {
            var result = JsonSerializer.Deserialize<List<string>>(jsonString) ?? Enumerable.Empty<string>();
            return result.Select(item => item.ToString());
        }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            string jsonString = "[\"1\",\"2\",\"3\",\"4\",\"5\"]";
            DesJson desJson = new DesJson();
            IEnumerable<string> result = desJson.RunDesir(jsonString);
            result.ToList().ForEach(Console.WriteLine);
        }
    }
    Ответ написан
    Комментировать
  • Можно ли в python создавать переменные из значений списка?

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

    Примерно как то так (используя словарь):
    my_list = ['war1', 'war2', 'war3']
    dic = {}
    
    for x in my_list:
      dic[x] = 'test'
    
    print(dic)  # {'war1': 'test', 'war2': 'test', 'war3': 'test'}
    Ответ написан
  • Как найти js код который обрабатывает событие?

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

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    волшебная функция

    Можно родить примерно такое:
    // The magic function.
    static (int Index, int Value) MagicFunction(int[] array, int target)
    {
        int index = Array.IndexOf(array, target);
        return index != -1 ? (index, array[index]) : (-1, -1);
    }
    
    // Используем.
    
    int[] numbers = {2, 4, 6, 8, 10};
    int t = 6;
    
    (int i, int v) = MagicFunction(numbers, t);
    
    Console.WriteLine(i != -1 ? $"Элемент {v} найден по индексу {i}." : $"Элемент {t} не найден в массиве.");
    // Элемент 6 найден по индексу 2.
    Ответ написан
    Комментировать
  • Не работает цикл for (Даже не запускается от функции)?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Условие цикла for написано не верно:
    // for(int i = 0; i >= _inventory.Length; i++)
    for(int i = 0; i < _inventory.Length; i++)
    
    // Или если _inventory изначально может быть пуст, а значит и перебирать там нечего.
    for(int i = 0; i <= _inventory.Length; i++)
    Ответ написан
    Комментировать
  • Можно ли преобразовать без копирования byte[,] в byte[]? Как избавится от пробелммы, что одной мат. библиотеке нужен [,], другой[] с width height?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как вариант, использовать легковесный срез массива без копирования (Span<T>):
    byte[,] data2D = ...; 
    int width = data2D.GetLength(1);
    
    // Создаем Span byte из data2D.
    Span<byte> data1D = MemoryMarshal.CreateSpan(ref data2D[0, 0], data2D.Length); 
    
    // Передаем Span byte в функцию.
    ProcessData(data1D, width);
    Ответ написан
    2 комментария
  • Как лучше устраиваться, по ИП или ТК РФ?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1) По ИП даже когда ты безработный нужно за год выплатить фиксированную сумму ( штук 50 вроде )
    Легко уволить, не выплатив даже увольнительные, легко уволить также со стажировки?

    49500 руб в год + ежемесячный налог.
    Фиксированные взносы вычитаются из налога по УСН, поэтому при зарплате от 830 тыс в год их можно не учитывать.

    IKStantin
    Легко уволить, не выплатив даже увольнительные, легко уволить также со стажировки?

    Только расторжение договора. Нет нужных пунктов - нет и обязательств.
    2) По ТК РФ налоги 13% а не 6, но не уволят просто так и могут выплатить напоследок если не стерпеть

    Это лично Ваш налог 13%, но работодатель за Вас платит ещё порядка 30%.

    И что по итогу лучше?

    Чтобы ип или самозанятым было выгоднее работать исполнителю, нужно, чтобы заказчик платил раза в 2-3 большем, чем работнику по ТК (я про сумму на руки). Отпуска, выходного пособия и увольнения нет, есть расторжение договора.
    Ответ написан
    5 комментариев
  • Можно продвигать сайт с неуникальным контентом?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Будет продвигатсья такой сайт с уникальным только title?

    Ранжироваться может и пустая страница, вопрос лишь в эффективности ранжирования, и она будет минимальная.
    Ответ написан
    Комментировать
  • Как войти в Telegram Web при помощи local storage?

    Mike_Ro
    @Mike_Ro Куратор тега Selenium
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Проходим аутентификацию на сайте телеги классическим образом, руками.
    2. Сохраняем полученную куку в файл.
    3. Передаём селениуму адрес до куку-файла.
    4. Заходим на сайт телеги через селениум - аутентификация уже пройдена.

    Важный момент, может потребоваться повторная аутентификация, если различаются ip или тип устройств (зависит от логики работы сервера телеги).
    Ответ написан
  • Что делать если в юнити c# выводит сообщение в консоль если она больше 5 хотя не должна?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Обратите внимание на ; после блока с условием if (hw <= 6), это означает, что блок кода, который идет дальше (в фигурных скобках), будет выполнен независимо от результата этого условия:
    // false
    if (1 > 2);
    
    // Но код все равно будет выполнен:
    {
        print("Welcome!");
    }

    Попробуйте так:
    if (hw <= 6)
    {
        print("Welcome!"); 
    }
    
    // Или так
    if (hw <= 6) print("Welcome!");
    Ответ написан
    1 комментарий
  • Как сделать, чтобы браузер, открытый при помощи Selenium работал как с мобильного телефона?

    Mike_Ro
    @Mike_Ro Куратор тега Selenium
    Python, JS, WordPress, SEO, Bots, Adversting
    Как сделать, чтобы браузер, открытый при помощи Selenium работал как с мобильного телефона?

    У одного веб приложения есть проверка на текущее устройство.

    Никак, пока не будет известен алгоритм детекта НЕ мобильного устройства. Но, как вариант, использовать один из следующих методов (от простого к сложному):
    1. Открыть инструменты разработчика браузера, активировать "toggle device toolbar" и задать ширину и высоту дисплея, равную мобильному устройству (условно чекается).
    2. Использовать Appium + Android Virtual Device (слабо чекается).
    3. Использовать Appium + настоящий смартфон (слабо чекается).
    4. Использовать собственный браузер (не чекается).

    P.S. про всякие заголовки, ip, куки, локальные хранилища, частота подключений итп даже говорить не будут, это дефолт.
    Ответ написан
    Комментировать
  • Скрипт на Python работает медленно, как ускорить?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Скрипт в целом работает, но работает медленно, а мне нужно проверить порядка 300.000 страниц. Подскажите пожалуйста, есть ли способы как то ускорить работу кода?

    Ваш скрипт выполняет запросы к ПС последовательно, по одному за раз (синхронно), дожидаясь завершения предыдущего. Чтобы радикально увеличить производительность, необходимо выполнять операции параллельно (асинхронно). Используйте asyncio для выполнения асинхронного выполнения скрипта, и aiohttp вместо requests в качестве асинхронного http клиента.
    Ответ написан
  • Почему корень в JS это null, а не Object.prototype?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Комментировать
  • В чем ошибка запуска Docker compose?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как подключить бд к серверу в docker-compose?

    DB_HOST: db

    Предположу, фронт использует localhost или 127.0.0.1 для подключения к бд? Если да, то заменяем ее на db.

    Можно проверить, кто использует сеть my_network (искать в Containers), фронт должен быть там:
    $ docker network inspect my_network

    MYSQL_USER: "root"
    MYSQL_PASSWORD:

    Ну и пароль рекомендую все таки установить.
    Ответ написан
    5 комментариев
  • Как создать личный кабинет в Wordpress со своим дизайном и функционалом?

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

    Плагины для создания ЛК не использовал, т.к. практически всегда необходимо реализовать что то, что быстрее и качественнее реализовать собственным плагином, нежели бороться с готовым. Но если прям требуется использовать готовый плагин, то можно использовать следующие:
    - WP-Recall.
    - Profile Builder.
    Может проще каким-то другим способом все это реализовать. Хочу разобраться и услышать как вы решали или решили бы эти задачи.

    Писал свой плагин, используя возможности custom post types (CPT):
    1. Создаем плагин, в нем регистрируем нужные возможности CPT (настройки в админке, url, шаблоны страниц), т.е. то, что не связано с получением основных данных с сервера из п2.
    2. Создаем дополнительную функциональность плагина из п1, где обрабатываем запросы к бд, права итп, т.е. то, что не связано с базовыми настройками плагина из п1.
    3. Создаем отдельные шаблоны страниц личного кабинета пользователя (я использовал React), из которых обращаемся к п2, для получения данных от сервера.
    4. Создаем отдельные шаблоны страниц для фронта, где так же обращаемся к п2, для получения данных от сервера.
    Ответ написан
    Комментировать
  • Как установить pg_dump на Windows?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Переустановка PostgreSQL, во время установки выбрать "Command Line Tools" (тогда установится так же pg_dump).

    pgAdmin не включает в себя pg_dump.

    UPD: проблема была в переменной окружения PATH (не указывала на место расположения на другом диске, куда был установлен PostgreSQL)?
    Ответ написан
    5 комментариев