Задать вопрос
  • Как подключить script src= прямо в файле JS?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    const loadedModule = require('./modulePath/index.js');
    
    loadedModule.counter()
    console.log(loadedModule.awesomeValue);

    Хорошее руководство
    Ответ написан
    1 комментарий
  • Как при парсинге на node js смотреть цвет шрифта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Перейти на страницу.
    2. Получить все элементы по селектору.
    3. В цикле обойти каждый элемент, выполняя код на странице, который получит и вернет цвет элемента, затем проверить на белый.
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('//some.com')
    
    const symbol = "₽";
    const xpathExpression = `(//span[contains(text(), '${symbol}')])`;
    const els = await page.$x(xpathExpression);
    
    for (const el of els) {
      const c = await page.evaluate(_el => {
        const s = window.getComputedStyle(_el);
        return s.color;
      }, el);
    
      if (c === 'rgb(255, 255, 255)') console.log('White is detected!')
    }
    
    await browser.close();
    Ответ написан
    Комментировать
  • Снять сайт с теневого бана Google?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    После получения ссылки на пациента, все более менее прояснилось. Ниже список того, что лично меня напрягло, когда я увидел сайт (от наиболее приоритетного к наименьшему):
    - При переходе с главной по элементу каталога, я получаю url //openworkshop.su/?page=1&page_size=30&name=&game=108600&game_select=false&dependencies=false&sort=iMOD_DOWNLOADS, это же уже как бы внутренняя страница, но по url - это главная.
    - Очень похожие title и description на разных страницах.
    - Минимум текста на страницах.
    - Отсутствуют атрибуты rel="canonical".
    - Отсутствуют H1-3 заголовки.
    - Ранее был проиндексирован дубль по //5.44.41.136/, хоть и щас его нет здесь нет, но я бы все равно отдавал 403 код.
    - Слишком много "красного" и "желтого" при диагностике.
    КартинкО
    658d19b88c8e5000123808.png
    Ответ написан
    1 комментарий
  • Как оптимизировать сервер на python?

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

    Я бы использовал следующее:
    - Асинхронность с Asyncio.
    - Сжимать аудио перед отправкой на клиент.

    Если я правильно понимаю, Вы используете новое соединение для каждого запроса? Может лучше постоянное?
    Ответ написан
    2 комментария
  • Можно ли использовать pnpm из РФ?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно ли использовать pnpm из РФ?

    Нужно! Хоть владелец площадки и наложил собственные санкции, но у меня лично проблем не возникает (без vpn).
    Ответ написан
    2 комментария
  • Почему модуль winsound не воспроизводит звук?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Вы не передали переменную с путем до "звука":
    import winsound
    sound_timer = 'stoping.wav'
    # winsound.PlaySound('sound', winsound.SND_FILENAME)
    winsound.PlaySound(sound_timer, winsound.SND_FILENAME | winsound.SND_LOOP)

    Расширенное руководство.
    Ответ написан
  • Как составить HTTP post запрос на dadata?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Помогите составить запрос с помощью модуля requests

    Вы имели ввиду "напишите за меня запрос с помощью модуля requests"?

    На основе официального примера, с помощью модуля requests:
    import requests
    import json
    
    api_key = "api_key"
    secret_key = "secret_key"
    api_url = "https://cleaner.dadata.ru/api/v1/clean/address"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Token {api_key}",
        "X-Secret": secret_key
    }
    
    # data
    data = ["мск сухонска 11/-89"]
    
    # requests
    response = requests.post(api_url, headers=headers, data=json.dumps(data))
    
    # check response
    if response.status_code == 200:
        print(f"Success: {response.json()}")
    else:
        print(f"Failed: {response.status_code}, {response.text}")
    Ответ написан
    Комментировать
  • Как запретить пользователям из России обращаться к определенным функциям сервера?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    ФЗ № 406 от 31.07.2023:
    Владелец сайта и (или) страницы сайта в сети "Интернет", и (или) информационной системы, и (или) программы для электронных вычислительных машин, являющийся российским юридическим лицом или гражданином Российской Федерации и осуществляющий свою деятельность в сети "Интернет" на территории Российской Федерации, в случае, если доступ к информации, размещенной на его сайте и (или) странице сайта в сети "Интернет", и (или) в его информационной системе, и (или) программе для электронных вычислительных машин, предоставляется пользователям, прошедшим авторизацию, обязан проводить ее в отношении пользователей, находящихся на территории Российской Федерации, одним из следующих способов:

    - с использованием абонентского номера оператора подвижной радиотелефонной связи в порядке...
    - ЕСИА...
    - ЕБС...
    - с использованием иной информационной системы, обеспечивающей авторизацию пользователей сайтов и (или) страниц сайтов в сети "Интернет"...

    Закон обязывает всех владельцев "веб-площадок" (зарегистрированных на территории РФ) с возможность авторизации пользователей (находящихся на территории РФ) производить эту "авторизацию" любым из перечисленных способов.

    Тут интересный момент в "находящихся на территории РФ" пользователей. Соответственно, Вы обязаны удостовериться, находится ли пользователь на территории РФ или нет. Варианты определения геолокации пользователя:
    - IP-адрес (своя бд, сторонний сервис, WebRTC).
    - HTML5 Geolocation API.
    - Часовой пояс браузера.
    - Геолокация у мобильных устройств.

    Но в отношение IP имеется №152-ФЗ, который гласит "персональные данные - любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных)", а значит IP сюда тоже можно "натянуть на глобус", соответственно, вначале необходимо спросить разрешение на обработку данных о любой геолокации пользователя, а затем, если он разрешит - проверять, "верблюд ли он". Соответственно, если пользователь не разрешит, то Вы не имеете право предоставлять авторизацию, через "иные сервисы".
    Т.е. единственный выход выходит сервисы которые каким-то образом ассоциируют IP со страной/регионом/городом и делятся этой информацией по подписке, либо предоставляют готовую БД, но у неё проблема в потере актуальности со временем

    Именно, платить в случае не верного определения - Вам.
    Ответ написан
    Комментировать
  • Почему бот дважды выполняет команду (telebot)?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему бот дважды выполняет команду (telebot)?

    Присмотритесь внимательнее на свой код, в цикле происходит отправка одного и того же сообщения столько раз, сколько пользователей в чате (дважды, если пользователей в чате тоже двое):
    for user in range(users):
        try:
            bot.send_message(message.chat.id, msg)
    Ответ написан
  • Страницы с GET-параметрами в sitemap.xml, плохо?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    Если это фильтры для магазина, либо эти url параметры как то изменяют поведение/содержимое страницы, тогда нормально. В остальном случае - лучше от них избавляться.
    Ответ написан
    Комментировать
  • Как исключить записи отдельной категории своей таксономии WordPress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Параметры Таксономий

    Получаем все записи с таксономией offer_cat, исключая записи с id 100, 101 и 102:
    $q = new WP_Query([
      'post_type' => 'offer',
      'posts_per_page' => 99,
      'tax_query' => [
        [
          'taxonomy' => 'offer_cat',
          'field' => 'term_id',
          'terms' => [100, 101, 102],
          'operator' => 'NOT IN',
        ],
      ],
    ]);

    Получаем записи (3) с таксономией offer_cat и id 100, 101 и 102:
    $q = new WP_Query([
      'post_type' => 'offer',
      'posts_per_page' => 99,
      'tax_query' => [
        [
          'taxonomy' => 'offer_cat',
          'field' => 'term_id',
          'terms' => [100, 101, 102],
          'operator' => 'IN',
        ],
      ],
    ]);
    Ответ написан
    1 комментарий
  • Стоил ли экранировать вывод Contact Form 7?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Стоил ли экранировать вывод Contact Form 7?

    Если Вы под "экранировать" понимаете санитайзинг (Sanitize), то да. Лишний слой безопасности, который не зависит от конкретного плагина - хуже не сделает (если написан не криво).
    Ответ написан
    Комментировать
  • Почему не обновляется tittle и description в поисковиках?

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

    Нужно. Но, если ПС посчитает, что title/desctiption не соответствуют ключу, а страница в целом соответствует, то ПС может использовать иные данные со страницы.
    Ответ написан
    2 комментария
  • Почему при использовании .toUTCString() у меня получается не то время?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Tue Dec 19 2023 15:15:27 GMT+0600 (Восточный Казахстан)
    popup.js:22 Tue, 19 Dec 2023 09:15:27 GMT

    Все верно он отображает, а отображает он это с учетом смещения на 6 часов.

    Вот пример вычисления настоящей и UTC даты, а так же настоящего времени (nowTime()):
    const date = new Date();
    const nowTime = () => {
      const hours = date.getHours().toString().padStart(2, '0');
      const minutes = date.getMinutes().toString().padStart(2, '0');
      const seconds = date.getSeconds().toString().padStart(2, '0');
    
      return `${hours}:${minutes}:${seconds}`
    }
    
    console.log(`Local date: ${date}`);
    console.log(`Local time: ${nowTime()}`);
    
    console.log(`UTC date: ${date.toUTCString()}`);
    console.log(`Offset hours: ${date.getTimezoneOffset() / 60}`);
    
    // Local date: Wed Dec 20 2023 09:24:43 GMT+0300 (Москва, стандартное время)
    // Local time: 09:24:43
    // UTC date: Wed, 20 Dec 2023 06:24:43 GMT
    // Offset hours: -3
    Ответ написан
  • Можно ли как-то применять execute_script относительно только WebElement в Selenium, а не драйвера?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно, попробуйте так:
    el = driver.find_element(By.CLASS_NAME, "checbox")  # or checkbox?
    c = driver.execute_script("return arguments[0].getBoundingClientRect();", el)
    print(c)  # {'bottom': 200, 'height': 50, 'left': 150, 'right': 250, 'top': 150, 'width': 100}
    Ответ написан
    2 комментария
  • Как монетизировать данное серверное оборудование?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как монетизировать данное серверное оборудование?

    Можно не напрямую, а опосредовано. Т.е. разместить на этом железе NAS, сервер почты и другие сервера, таким образом сэкономить на перечисленных услугах + получите опыт.
    Ответ написан
    Комментировать
  • Как запретить счетчику Яндекс Метрика изменять HTML страницу сайта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вопрос. Как запретить Яндекс Метрике менять что либо на сайте?

    По умолчанию - метрика ничего не изменяет в существующем html.
    В моем случае Яндекс Метрика изменяла номер телефона в шапке сайта на неизвестный мне номер.

    Это не метрика, а очень похоже на calltracking. Возможно, Яндекс Телефония как то была интегрирована в счетчик.
    Ответ написан
    6 комментариев
  • Как в цикле перебрать содержимое файлов на NodeJS?

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

    fs/promises:
    1. Получить список файлов директории - fs.readdir.
    1.1. Отфильтровать файлы только с расширением .json.
    2. Чтение файлов в цикле - fs.readFile.
    и в итоге отправлять содержимое на клиент

    Здесь лучше начать с запроса от клиента на сервер.
    Ответ написан
  • Как подключить вход через Google?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    6 комментариев