Задать вопрос
  • Как достать словарь из websocket?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    - Декодировать json.
    - Прочитать значения из словаря и распечатать по условию.
    import json
    
    def on_message(ws, message):
        data = json.loads(message)
        s = data.get("s")
        p = data.get("p")
    
        if p:
            _p = float(p)
    
            if _p > 51500:
                print(f"Монета {s} больше 51500, текущая цена: {_p}")
            else:
                print(f"Монета {s} меньше или равна 51500, текущая цена: {_p}")
    Ответ написан
    1 комментарий
  • Как вернуть кортеж из функции?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    def sort_pair(a, b):

    В ТЗ указано, что функция sort_pair должна принимать один аргумент, который является кортежем из двух элементов целочисленного типа, а не 2 аргумента не определенного типа...
    def sort_pair(pair):
        a, b = pair
        if a <= b:
            return (a, b)
        else:
            return (b, a)
    
    print(sort_pair((5, 1)))  # (1, 5)
    print(sort_pair((2, 2)))  # (2, 2)
    print(sort_pair((7, 8)))  # (7, 8)

    Добавим аннотации, чтобы прям хорошо было:
    from typing import Tuple
    
    def sort_pair(pair: Tuple[int, int]) -> Tuple[int, int]:
        a, b = pair
        if a <= b:
            return (a, b)
        else:
            return (b, a)
    
    print(sort_pair((5, 1)))  # (1, 5)
    print(sort_pair((2, 2)))  # (2, 2)
    print(sort_pair((7, 8)))  # (7, 8)
    Ответ написан
    2 комментария
  • Как выбрать данные, если нет в одной таблице, то взять из другой?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    COALESCE?
    SELECT
        comment.*,
        COALESCE(users.avatarInGames, usersCache.avatarInGames) AS avatarInGames,
        COALESCE(users.gameId, usersCache.gameId) AS gameId
    FROM comment
    LEFT JOIN users ON comment.UID = users.userId
    LEFT JOIN usersCache ON comment.UID = usersCache.userId
    WHERE comment.status = 1
    ORDER BY comment.OID DESC;

    COALESCE(users.avatarInGames, usersCache.avatarInGames) AS avatarInGames avatarInGames берет из users или если его там нет, то возьмет из usersCache.
    Ответ написан
    2 комментария
  • Message: move target out of bounds: viewport size: 452, 362 (Session info: MicrosoftEdge=121.0.2277.128). Что делать?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Message: move target out of bounds: viewport size: 452, 362 (Session info: MicrosoftEdge=121.0.2277.128).

    Перемещение курсора за область браузера, которая равна "viewport size: 452, 362" (даже если Вы там и выставили "driver.set_window_size(500, 500)").
    move_by_offset

    viewport size: 452, 362

    Это относительное смещение от текущего положения курсора, т.е. 250 * 2 итерации (или 1 дополнительную) = 500, минус возможные границы или элементы браузера и вот, у Вас уже не хватает области браузера.

    Я использую не относительные координаты (move_by_offset), а абсолютные move_to_element_with_offset.
    Ответ написан
    1 комментарий
  • Как обработать GET-запрос по AJAX(jQuery) PHP-скриптом?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Таких вопросов уже несколько десятков, если не сотен https://www.google.com/search?q=site%3Aqna.habr.co...
    Ответ написан
    Комментировать
  • Как убрать спам с сайта?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Переводите сайт на https.

    Провайдер интернета может встраивать рекламу на сайты без HTTPS из за отсутствия шифрования данных, передаваемых между пользователем и сайтом. Это позволяет провайдеру легко модифицировать трафик, вставляя в него рекламные баннеры или сообщения.
    Ответ написан
    Комментировать
  • Почему не записываются emoji в базу данных?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Бд mysql wp должна иметь кодировку utf8mb4 (поддерживает хранение символов юникод втч. эмоджи), а вот utf8 в mysql не поддерживает 4 байтные символы, к которым относятся и эмоджи, из за чего они заменяются на знаки вопроса.

    wp-config.php:
    define('DB_CHARSET', 'utf8mb4');
    define('DB_COLLATE', 'utf8mb4_unicode_ci');

    И изменяем кодировку таблицы бд c utf8 на utf8mb4.
    Ответ написан
    6 комментариев
  • Как запарсить страницу?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Может ли на hh.ru стоять какая-то защита от парсинга?)

    Самая примитивная, которая чекает заголовки:
    import requests
    from bs4 import BeautifulSoup
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
        'Accept-Language': 'en-US,en;q=0.9',
        'Accept-Encoding': 'gzip, deflate',
        'Connection': 'keep-alive',
    }
    
    res = requests.get('https://tomsk.hh.ru/article/31475', headers=headers)
    
    if res.status_code == 200:
        soup = BeautifulSoup(res.text, 'html.parser')
        el = soup.find('div', class_='URS-ratingTable')
    
        if el:
            print(el)
        else:
            print('Table not found!')
    else:
        print('The problem with connecting to the website', {res.status_code})
    Ответ написан
    Комментировать
  • Как добавить alt в плагине ddslick?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так:
    document.addEventListener('DOMContentLoaded', () => {
        $('#colorDropdown').ddslick({
            data: ddData,
            background: '#fff',
            imagePosition: "left",
            selectText: "Выбрать цвет",
            onSelected: (data) => {
                const colorInput = $('#form-popup-catalog input[name="color-product"]');
                const ralColors = $('.ral-colors');
                const ralColorProduct = $('.ral-colors .ral-color-product');
    
                colorInput.val(data?.selectedData?.text);
                ralColors.css('display', 'block');
                
                const imgHtml = `<img src="${data?.selectedData?.imageSrc}" alt="${data?.selectedData?.alt}">`;
                
                ralColorProduct.empty().html(`${data?.selectedData?.text}${imgHtml}`);
            }
        });
    });
    Ответ написан
    Комментировать
  • Почему не работает код?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    # balls.append([balls, dx, dy])
    balls.append([ball, dx, dy])
    
    # x,y = balls[i][0].positions()
    x,y = balls[i][0].position()
    
    # while True:
        # for i in range(count):
    while True:
        window.update()
        for i in range(count):
    Ответ написан
  • Как прослушать .ogg файл?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно заюзать либу PyGame:
    def play(file_path):
        pygame.mixer.init()
        pygame.mixer.music.load(file_path)
        pygame.mixer.music.play()
    
        while pygame.mixer.music.get_busy():  # if True, the melody is being played
            time.sleep(1)
    
    play('path_to_file/file.ogg')  # dancing dancing dancing...
    Ответ написан
    Комментировать
  • Как избежать создания папки .idea в PhpStorm?

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

    Никак, в ней размещаются настройки ide для настоящего проекта.
    Ответ написан
    Комментировать
  • Почему вылазит ошибка self.querySelector(...) is null?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему вылазит ошибка self.querySelector(...) is null?

    Потому, что элемент не был обнаружен в момент его получения. Используйте DOMContentLoaded.
    Ответ написан
  • Как передать переменную из Js в python(Flask)?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Ajax (fetch):
    async function getValue() {
        const input = document.querySelector('#input-id');
    
        try {
            const res = await fetch('/', {
                method: 'POST',
                headers: {'Content-Type': 'application/json'},
                body: JSON.stringify({'value': input.value})
            });
    
            if (res.ok) {
                console.log('Send success!');
            } else {
                throw new Error(`Send error, ${res.statusText}`);
            }
        } catch (error) {
            console.error('Error', error);
        }
    }

    Принимаем и возвращаем, если все ок:
    from flask import Flask, render_template, request, jsonify
    import json
    
    app = Flask(__name__)
    
    @app.route('/', methods=['GET', 'POST'])
    def index():
        if request.method == 'GET':
            return render_template('index.html')
        elif request.method == 'POST':
            try:
                data = request.json
                if 'value' in data:
                    value = validate(data['value'])
                    return jsonify({'message': 'Success!', 'value': value}), 200
                else:
                    raise KeyError('Value key not found')
            except (KeyError, json.JSONDecodeError) as e:
                return jsonify({'error': 'Invalid data format'}), 400
    
    def validate(value):
        return value
    
    if __name__ == '__main__':
        app.run(debug=True)
    Ответ написан
    Комментировать
  • Можно ли обмануть программиста с проектной работой?

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

    Могут и обманут, как только станет выгодно это сделать.

    Учитывая Ваш вопрос и его постановку, вероятнее всего, Вы не в состояние самостоятельно составить или проверить уже составленный договоров на юридическую чистоту.

    Единственный Ваш вариант - обращаться к юристу для составления платного договора, допников, актов итп. Если Вы обратитесь к юристу (в целом, к любому исполнителю) без четкого ТЗ, то получите соответствующий результат. Добавлю, что не каждый заказчик/работодатель согласится подписывать Ваш договор.
    Ответ написан
    2 комментария
  • Почему БД не принимает буквы, а только цифры?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    # cursor.execute(f'UPDATE Settings SET remember_pass = {user_pass.get().strip()} WHERE id = 1')
    cursor.execute("UPDATE Settings SET remember_pass = ? WHERE id = ?", (user_pass.get().strip(), 1))
    Ответ написан
    Комментировать
  • Что делает функция?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Принимает любой массив и коллбэк.
    2. Обходит массив, применяя к каждому элементу массива коллбэк.
    3. Возвращает новый массив с модифицированными элементами.
    Ответ написан
  • Летит бот-трафик с разных сайтов?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Ребят, как найти источник злодеяния?

    Искать ничего не нужно, нужно блокировать то, что возможно заблокировать с минимальными издержками. Самый быстрый вариант - CloudFlare, гуглить "CloudFlare Bot Blocking guide". Сразу говорю, CloudFlare слегка просаживает позиции сайта за счет увеличения времени доступа к контенту сайта, НО! Если удастся отфильтровать большинство ботов, то тем самым Вы поднимите ПФ сайта, и можно рассчитывать на то, что сайт как минимум вернется на изначальные позиции, а может и выше.
    Кстати, я заходил на эти самые говносайты и линкбэк я на свой сайт не обнаружил - вероятно их используют как рефер может быть или просто перенаправление.

    Бот может создавать ссылку в dom страницы и кликать по ней. Анкор ссылки может быть разным, но видел следующие варианты: "сайт продает наркотические вещества", "сайт обманывает пользователей", "сайт крадет данные кредитных карт" итп. Как Вы понимаете, на этом сайте стоят счетчики всех популярных ПС, которые видят клик по ссылке с этим анкором. Насколько эффективно ПС могут бороться с таким "SEO" - это другой вопрос.
    Также сразу вызывает подозрение, что IP адреса - все от мобильных операторов.

    Потому что это самый эффективный вариант маскировки ботов, особенно, если в Вашей тематике итак было 80%+ мобильных ip.
    Ответ написан
    Комментировать