Задать вопрос
  • Что такое API-ключ?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Воспользовался этой статьей, РФ нет в списке стран.

    Санкции, но если сильно жмет, то всегда можно зарегать аккаунт на необходимую страну.
    Ответ написан
    Комментировать
  • Как использовать имя css-класса как переменную?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Стандартными методами css это не сделать. Может через less? Но как?

    CSS не поддерживает динамическое получение имени классов и использование их в качестве именования его переменных. Для LESS можно использовать регулярное выражение, например:
    .fn(@aspect-class) {
      @matches: ~`@{aspect-class}.match(/\d+/g)`;
      @a: e(%(`@{matches}[0]`));
      @b: e(%(`@{matches}[1]`));
      // остальная логика
    }
    
    .fn(aspect-43-34);
    Ответ написан
    9 комментариев
  • Проверяют ли поисковые системы смысловую уникальность текста?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    Например, можно взять известный текст и изменить его с помощью нейронной сети.

    На данный момент, это работает. Не работает вариант, когда нейронка пишет текст самостоятельно с нуля.
    Или взять текст на английском и перевести на русский.

    Если переводчиком будет машина, то давно не работает.
    Ответ написан
    3 комментария
  • Как бороться со спамными обратными ссылками?

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

    Удалить - никак, ибо это борьба с ветрянными мельницами (как технически, так и юридически), но есть решение. Необходимо переписать веб сервер так, если загрузка изображения идёт не с Вашего домена (или гугл/яндекс), то с 50% вероятностью отдавать dick pic, вместо исходного изображения.
    Ответ написан
    Комментировать
  • На каком языке\и каком фреймворке языка лучше написать онлайн-доску? Что-то типа MIRO, или chattern, или sBoard?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Я ещё не пробовала react. Некоторые говорят на нём писать, некоторые на чистом js.

    Вначале на чистом js, затем идите в react, если захотите остаться на фронте.
    Что нужно изучить чтобы написать онлайн-доску?

    Рисование фигур
    Немного могу на python и php

    Python/php в "рисование на фронте" не очень помогут.
    Ответ написан
    2 комментария
  • Может ли бесконечный цикл в программе привести к поломке компьютера или смартфона?

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

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Но появилась идея запрашивать не все посты, а в зависимости от нужной категории. Все существующие ~ 2000 постов разделить на категории. Будет ли такая реализация работать быстрее?

    Хорошая идея, конечно будет.
    Либо есть какие-то другие идеи?

    Не "либо", а "вместе" - почему бы не кэшировать выборку постов из БД (Transients API)?
    $cache = get_transient('all_posts_cache');
    
    if (!$cache) {
        $posts = get_posts([
            'numberposts' => -1,
            'orderby' => 'date',
            'order' => 'DESC',
            'post_type' => 'post-item',
    
            // Искать по слагу категории
            'category_name' => 'category_name',
    
            // Или искать по id категории
            // 'cat' => 123,
    
        ]);
    
        // Кэширование на 1 час
        set_transient('all_posts_cache', $posts, HOUR_IN_SECONDS);
    
    }
    
    else {
        $posts = $cache;
    }
    Ответ написан
    Комментировать
  • Как проверить в списке чисел наличие числа, содержащего цифру 3?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    nums = list(map(int, input("Введите числа: ").split()))
    
    if any('3' in str(n) for n in nums):
        print("Найдено")
    else:
        print("Не найдено")
    Ответ написан
    Комментировать
  • Можно ли ограничить доступ к API через Docker-compose?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Развернуть backend и frontend в одной сети и не открывать порты бека во внешнюю сеть, чтобы открыты были только порты фронтенда.

    Все что "загрузилось браузером" у клиента - доступно клиенту, а значить можно отправить запрос вне сайта на этот же api.
    Вопрос, такой расклад событий может помочь ограничить доступ к эндпоинтам?

    Нет. Необходим более сложный механизм защиты, по типу отслеживания количества запросов с определённых ip адресов.
    Ответ написан
    1 комментарий
  • Как выйти из бесконечной работы браузера при парсинге через Selenium?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Нейронка это конечно хорошо, но желательно проверять, что она пишет:
    # EC.presence_of_element_located((By.CSS_SELECTOR, "product-slider__img js-product-current-img"))
    EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))

    Ниже код для Chrome и FF (Python 3.10, Windows 11 Pro 23H2) - все прекрасно работает, за исключением сайта-помойки, который грузится минуту:
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException
    
    options = Options()
    service = Service(r'D:\project\chromedriver-130.0.6723.93.exe')
    driver = webdriver.Chrome(service=service, options=options)
    
    url = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
    driver.get(url)
    
    try:
        element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
        )
        page_html = driver.page_source
        print(page_html)
    
    except TimeoutException:
        print("Элемент не найден")
    
    finally:
        print('Программа завершена')
        driver.quit()

    from selenium import webdriver
    from selenium.webdriver.firefox.service import Service
    from selenium.webdriver.firefox.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException
    
    options = Options()
    service = Service(r'D:\project\geckodriver.exe')
    driver = webdriver.Firefox(service=service, options=options)
    
    url = 'https://superstep.ru/product/NCFSW0W288YW_GRA/#colorGRA'
    driver.get(url)
    
    try:
        element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, ".product-slider__img.js-product-current-img"))
        )
        page_html = driver.page_source
        print(page_html)
    
    except TimeoutException:
        print("Элемент не найден")
    
    finally:
        print('Программа завершена')
        driver.quit()

    672b4890b03b0937030403.png
    Ответ написан
    2 комментария
  • Как в 2024 году получить access_token для API в созданном приложении во Вконтакте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    wall.deleteComment
    Этот метод можно вызвать с ключом доступа пользователя, полученным в Standalone-приложении через Implicit Flow.
    Требуются права доступа: wall.

    Implicit Flow для получения ключа доступа пользователя
    Implicit Flow для получения ключа доступа пользователя
    С 25 июня 2024 года способ получения ключа доступа пользователя (access token) изменился.

    Получить ключ теперь можно так:


    C помощью библиотеки VK ID SDK.
    Шаги получения ключа зависят от типа вашего приложения: Web, Android, iOS.

    — или —


    Без SDK, используя HTTP-запрос.
    Шаги получения ключа зависят от типа вашего приложения: Web, Android, iOS.

    Мы рекомендуем использовать SDK-библиотеку. Она включает готовый код для отрисовки формы ввода имени пользователя и пароля, а также даёт возможность использовать вход по One Tap.

    При подключении без SDK форму ввода понадобится реализовать самостоятельно, а вход по One Tap будет недоступен. При создании формы необходимо соблюдать требования VK к дизайну кнопки.

    После получения ключа доступа любым из способов вы сможете работать с API ВКонтакте.

    Ключи доступа, созданные ранее, продолжают поддерживаться.
    Ответ написан
  • Как преобразовать HTML в exe?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как обратиться к классу по параметру?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    [data-product-uid="2"] {}
    Ответ написан
    Комментировать
  • Как исправить данную ошибку?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    что тут не так? Не могу понять, что не правильно :/

    Ну там же написанно...
    Error at property 'operation': Value must be one of append, remove, set.


    // operation: "removeHeaders",
    operation: "remove",
    
    // operation: "setHeaders",
    operation: "set",
    Ответ написан
    3 комментария
  • Можно ли с помощью selenium перебирать значения параметров и сравнивать результаты этого "перебора" меж собой?

    Mike_Ro
    @Mike_Ro Куратор тега Selenium
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли с помощью selenium создать такой скрипт, что:

    Возможно, что может "увидеть" живой человек в браузере, то может и selenium. Вопрос лишь в написание кода и преодоление защиты со стороны сайта, если таковая имеется.

    P.S. если контент сайта формируется не динамическим путем, то проще использовать библиотеки по типу requests.
    Ответ написан
    8 комментариев
  • Как достать данные из заголовка полученные в get запросе в виде json?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Преобразовать json, пример.
    2. Циклом обойти п1, производя манипуляции с элементами объекта.
    Ответ написан
  • Как получить ссылку на покупку определенного лота на csmoney и совершить покупку через python?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    На сайте нельзя сгенерировать api ключ и нет документации . И я вот думаю как совершить эту покупку через скрипт, если нет апи. То есть как совершить покупку?

    Либо руками, либо ботом. Т.к. сайт динамический, то для бота придётся использовать фреймворк по типу Selenium.
    Ответ написан
    Комментировать
  • Как перейти на другую страницу из js кода привязаного к html кнопке?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    1. What is the default button type?
    2. Почему тег form в к относительному адресу добавляет "?"
    3. Действия браузера по умолчанию.
    document.querySelector("#butlog").addEventListener('click', (e) => {
        e.preventDefault(); // <---
        window.location.assign("https://vk.com/");
    });
    Ответ написан
    Комментировать
  • Как правильно воспользоваться документацией API к сайту и исполнить методы в Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Получить your_secret_key, скорее всего в ЛК этого сайта.
    2. Вставить из примера ссылку в браузер и перейти, подставив вместо your_secret_key полученный ключ из п1, вместо остальных - в API руководстве написано, что нужно.
    3. В результате, "в браузер вернется json объект" с данными от сервера, которые так же указаны в API руководстве.

    4. Затем, пишем Python код, будем использовать синхронный requests (как самый простой):
    import requests
    
    # Подставить нужные данные из API руководства
    params = {
        'key': '?',
        'hash_name': '?',
        'id': '?',
        'price': '?',
    }
    
    # GET запрос на сервер, аналог того, что мы использовали в браузере из п2.
    response = requests.get('https://rust.tm/api/v2/buy', params=params)
    
    # Печатаем результат запроса, аналог того, что мы использовали в браузере из п3.
    print(response.json())
    
    # В консоль распечатается приблизительно это:
    
    # {
    #   "success": true,
    #   "id": "136256960"
    # }
    
    # Затем нужно циклом обойти результат с сервера и уже на основание полученных данных - предпринять необходимые действия. Например, пойти пожрать, чем я сейчас как раз и займусь... ;)

    P.S. специально написал ответ максимально простым языком, и не вижу смысла писать более сложные код и рассказывать про виртуальное окружение, т.к. скорее всего Вы в любом случае пойдете гуглить эти проблемы.

    P.P.S. код, ошибки и ссылки на api нужно писать текстом, а не скринами, не нарушайте правила сервиса!
    Ответ написан
    1 комментарий
  • Aiogram ошибка SSL. Как исправить?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вам нужен прокси, который может в https, потом обновите url:
    # PROXY_URL = "http://10.0.22.52:3128"
    PROXY_URL = "https://10.0.22.52:3128"
    Ответ написан