• Как обработать 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
    Python, JS, WordPress, SEO, Bots, Adversting
    Переводите сайт на https.

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

    Mike_Ro
    @Mike_Ro
    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.
    Ответ написан
  • Как получить список всех пользователей приватного чата через бота?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Никак, на то он и приватный.
    Ответ написан
  • Как передать переменную из 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, JS, WordPress, SEO, Bots, Adversting
    Решил проанализировать ссылающиеся домены в проге SEO SpyGlass. Но доменов указанных выше 3 сайтов я там не вижу. Только сайты, которые копируют мои статьи.

    В чем может быть дело?

    Вероятно в том, что программа SEO SpyGlass еще не обновила свою бд?
    Ответ написан
  • Почему БД не принимает буквы, а только цифры?

    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
    Python, JS, WordPress, SEO, Bots, Adversting
    Ребят, как найти источник злодеяния?

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

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

    Потому что это самый эффективный вариант маскировки ботов, особенно, если в Вашей тематике итак было 80%+ мобильных ip.
    Ответ написан
    Комментировать
  • React. Нормальная ли практика выносить картинки за пределы src в папку public?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Нормальная, и не только в react, но и в сборщике webpack с его шаблонизаторами.
    Ответ написан
  • Возможно ли создавать приложения для Windows и Linux на JavaScript, html и css?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно:
    - ElectronJS
    - Tauri
    Ответ написан
    Комментировать
  • Как высчитать уровень исходя из массива?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    const LVLS = [
        {exp: 10, lv: 1},
        {exp: 25, lv: 2},
        {exp: 45, lv: 3},
        {exp: 70, lv: 4},
        {exp: 100, lv: 5},
    ]
    
    console.log(LVLS.reduce((acc, l) => (47 >= l.exp ? l.lv : acc), 0)); // 3

    Все работает, но кажется, что достаточно криво.

    Теперь ровнее.
    Ответ написан
    2 комментария