Задать вопрос
  • Является ли количество проектов в портфолио фактором ранжирования сайта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вопрос: является ли количество работ в разделе "портфолио" сайта фактором ранжирования в Яндексе и Google?

    Является, но не в контексте самих портфолио, а в контексте количества страниц с уникальным контентом. В ином случае, это больше будет во вред, а не на пользу (дубликаты или "малоценные" страницы).
    В поиске не нашёл информации, является ли это коммерческим фактором ранжирования или чем-то подобным.

    Ключ "портфолио", регион Москва и область, 1 замер:
    - Яндекс: на 90% информационный ключ.
    - Гугл: на 60% информационный ключ.

    P.S. "портфолио" как ключ - не очень эффективно, т.к. непонятно, что имеется ввиду (как сделать портфолио самостоятельно, купить портфолио, пример детского портфолио, пример портфолио рептилойдов), используйте более целевые ключи.
    Ответ написан
    Комментировать
  • Что делать если прогнали хрумером?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если совсем новый ресурс, то возможно. Если старый, то нет.
    Ответ написан
    Комментировать
  • VSCode python не дает подсказки кода, как исправить?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
  • Как происходит сборка JS с множеством страниц и компонентов?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    во всех видео и статьях рассказывается, про единый файл app.js неужели один файл нужно прикреплять вообще на все страницы сайта и этот монстр будет по id или вызову компонентов понимать

    Или происходит сборка под каждую сложную сущность?

    Зависит от того, как настроите, но я бы сделал 1 директорию под 1 страницу, в ней находится html и js именно для этой страницы, в нее импортируются общие js библиотеки, общий js для страницы нужен для того, чтобы прописать логику именно под эту страницу. Правильно настроенный сборщик самостоятельно сгенерирует и подключит js файлы, необходимые для каждой страницы. Аналогично и по css.
    project/
    
    - home/
    
    -- home.html <-- подключение home.js/scss и библиотек (если они не требуют кастомной настроки)
    -- home.js <-- импорт js библиотек и кастомная настройка именно под страницу home
    -- home.scss <-- импорт scss библиотек и кастомная настройка именно под страницу home
    
    - catalog/
    
    -- catalog.html <-- подключение catalog.js/scss и библиотек (если они не требуют кастомной настроки)
    -- catalog.js <-- импорт js библиотек и кастомная настройка именно под страницу catalog
    -- catalog.scss <-- импорт scss библиотек и кастомная настройка именно под страницу 
    
    - libs/
    
    -- popup.js
    -- form.js

    на выходе примерно такое:
    dist/
    - home.html <-- подключено main.js/css + home.js/css
    - catalog.html <-- подключено main.js/css + catalog.js/css
    
    - assests/
    
    -- main.js <-- общие
    -- main.css <-- общие
    -- home.js
    -- home.css
    -- catalog.js
    -- catalog.css
    Ответ написан
    Комментировать
  • Как подключить вордпресс по FTP к серверу на таймвеб?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Если речь про shared хостинг, то WP нормально встает на TimeWeb и не просит указывать FTP в настройках. Пишите в поддержку, проблема конкретно в Вашем WP (вероятно, проблема с правами на директории или файлы).

    Отдельно, можете самостоятельно попробовать такой вариант.
    Ответ написан
    Комментировать
  • Как сделать парсер для excel таблицы?

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

    1. Запросить данные с сайта используя requests.
    2. Использовать beautifulsoup для парсинга html из п1.
    3. Использовать openpyxl для работы с excel.
    Ответ написан
    Комментировать
  • Как проверить из каких источников приходит ответ при запросе на сайте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вопрос: как по запросу (после отправки) посмотреть из каких источников этот ответ приходит?

    В хроме можно посмотреть, куда ушёл запрос.
    Ответ написан
    Комментировать
  • Selenium конфликт между драйвером и версией хрома?

    Mike_Ro
    @Mike_Ro Куратор тега Selenium
    Python, JS, WordPress, SEO, Bots, Adversting
    Вы поставили библиотеку ChromeDriver (Selenium), затем Ваш хром на компе обновился, а библиотека осталась прежней, версии стали не совместимыми.
    pip install --upgrade selenium
    Ответ написан
    Комментировать
  • Подставляем ключевые слова в объявление?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Первая строка из гугла https://support.google.com/google-ads/answer/6371157

    КартинкО

    66752cd25ea2f479613076.jpeg
    Ответ написан
    Комментировать
  • Python, как исправить ошибку name 'pygame' is not defined?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Устанавливайте библиотеки и запускайте скрипт в виртуальном окружение.
    Ответ написан
    Комментировать
  • Как в __init__ DRF получить request?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В DRF объект request доступен лишь в методах, которые выполняются при обработке запроса. В init методе доступ к request получить невозможно, так как init выполняется при создании экземпляра класса, а не при обработке запроса.

    НО! Как вариант, можно создать метод, который будет выполняться перед запросом, например, использовать метод initial в классе ViewSet, например:

    from rest_framework import viewsets, status
    from rest_framework.response import Response
    
    
    class FooBarAPI(viewsets.ViewSet):
    
        def initial(self, request, *args, **kwargs):
            super().initial(request, *args, **kwargs)
            self.query_params = getattr(request, 'query_params', {})  
    
        def foo(self, request, *args, **kwargs):
            print(self.query_params.get('param1')) 
            return Response("foo", status=status.HTTP_200_OK)
    
        def bar(self, request, *args, **kwargs):
            print(self.query_params.get('param2'))
            return Response("bar", status=status.HTTP_200_OK)
    Ответ написан
  • Почему selenium не видит элеманта captcha?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Капча расположена в iframe, это другой контекст, на который вначале необходимо переключиться, выполнить действия внутри этого контекста, затем переключиться (вернуться) на дефолтный контекст:
    import time
    from fake_useragent import UserAgent
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    option = webdriver.ChromeOptions()
    ua = UserAgent()
    option.add_argument(f'user-agent={ua.random}')
    option.add_argument("--disable-infobars")
    
    s = Service(executable_path=r"C:\Python Scripts\валид\Steam Number\chromedriver.exe")
    
    driver = webdriver.Chrome(options=option, service=s)
    driver.maximize_window()
    driver.get('https://help.steampowered.com/en/wizard/HelpWithLoginInfo?issueid=406')
    
    # iframe
    iframe = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/div[7]/div[2]/div[2]/div/div[2]/div[1]/div[3]/form/div[3]/div[1]/div/div/div/iframe'))
    )
    
    # switch to iframe context
    driver.switch_to.frame(iframe)
    
    element_to_click = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, '/html/body/div[2]/div[3]'))
    )
    
    element_to_click.click()
    
    # switch to default context
    driver.switch_to.default_content()
    
    time.sleep(10)
    driver.quit()

    6672812eb9ca8801428501.png

    66728135eeb06375772906.png
    Ответ написан
    7 комментариев
  • Как сделать команду которая при вводе определенного слова закрывает консоль на C#?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Clear();
                double firstVal, secondVal = 0;
                string act;
    
                try
                {
                    Console.WriteLine("Введите 1-е число: ");
                    firstVal = double.Parse(Console.ReadLine());
    
                    Console.WriteLine("Выберите операцию: '+' '-' '*' '/' 'x^' '√x'");
                    act = Console.ReadLine();
    
                    if (act == "exit")
                    {
                        Environment.Exit(0);
                    }
    
                    if (act == "√x")
                    {
                        Console.WriteLine(Math.Sqrt(firstVal));
                    }
                    else
                    {
                        Console.WriteLine("Введите 2-е число: ");
                        secondVal = double.Parse(Console.ReadLine());
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine("Введены недопустимые символы");
                    Console.ReadLine();
                    continue;
                }
    
                switch (act)
                {
                    case "+":
                        Console.WriteLine(firstVal + secondVal);
                        break;
    
                    case "-":
                        Console.WriteLine(firstVal - secondVal);
                        break;
    
                    case "*":
                        Console.WriteLine(firstVal * secondVal);
                        break;
                        
                    case "x^":
                        Console.WriteLine(Math.Pow(firstVal, secondVal));
                        break;
                        
                    case "/":
                        if (secondVal == 0)
                            Console.WriteLine("Деление на ноль невозможно");
                        else
                            Console.WriteLine(firstVal / secondVal);
                        break;
    
                    default:
                        if (act != "√x") // проверка на допустимую операцию
                            Console.WriteLine("Ошибка! Неправильная операция.");
                        break;
                }
    
                Console.ReadLine();
                Console.WriteLine("Введите 'exit' для выхода или нажмите Enter для продолжения.");
                string? input = Console.ReadLine();
                if (input == "exit")
                {
                    Environment.Exit(0);
                }
            }
        }
    }
    
    // Введите 1-е число:
    // 5
    // Выберите операцию: '+' '-' '*' '/' 'x^' '√x'
    // /
    // Введите 2-е число:
    // 0
    // Деление на ноль невозможно
    // 
    // Введите 'exit' для выхода или нажмите Enter для продолжения.
    // exit
    // 
    
    // Введите 1-е число:
    // 5
    // Выберите операцию: '+' '-' '*' '/' 'x^' '√x'
    // -
    // Введите 2-е число:
    // 3
    // 2
    // 
    // Введите 'exit' для выхода или нажмите Enter для продолжения.
    // exit
    Ответ написан
  • Как передать переменную из flask в js?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Комментировать
  • При передаче информации в sqlite3 из бота в телеге ошибка near ",": syntax error, в чем причина?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    # cursor.execute(f'INSERT INTO sausages (user_name, product_type, product_type_amount) VALUES ({user_name}, {product_type}, {product_type_amount})')
    cursor.execute('INSERT INTO sausages (user_name, product_type, product_type_amount) VALUES (?, ?, ?)', (user_name, product_type, product_type_amount))

    Почему не стоит использовать f строки в SQL Python запросах?
    Ответ написан
    1 комментарий
  • В чем может быть причина аномального всплеска посещений на сайт?

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

    Если Ваш сайт сильно полагается на SEO, то все случаи выше - необходимо фиксить.
    Ответ написан
    Комментировать
  • Возможно ли подключить PostgreSQL к Wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    возможно ли подключить PostgreSQL к Wordpress?

    WordPress PostgreSQL Integration.
    Не придется ли переписывать SQL запросы, которые сделаны под MariaDB / MySQL?

    Плагин postgresql for wordpress обычно решает большинство возможных проблем, но возможно, придется вручную исправить некоторые запросы в коде или плагинах.
    Ответ написан
  • Зачем теперь в CSS единицы измерения vw и vh, если появились lvw и lvh?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - vw/vh всегда относятся к размеру текущей видимой области просмотра. Если у вас есть адресная строка или панель вкладок, которые перекрывают часть экрана, vw/vh будут учитывать это перекрытие.
    - lvw/lvh, svw/svh и dvw/dvh все относятся к размеру окна просмотра с учетом различных состояний динамических панелей (например, адресной строки или панели вкладок в мобильных браузерах).

    vw будет равен lvw только в том случае, если все динамические панели скрыты. В противном случае vw будет меньше, чем lvw.
    Ответ написан
    5 комментариев
  • Возможен ли перенос сайта на новый домен без потерь?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Много чего читал, все объяснено малость «на ленточке», без точных цифр в большом количестве, чтобы представить общую картину.

    Вы хотите точных цифр, с закрытым алгоритмом ранжирования и без конкретного региона, ключа, устройства, тематики итп?
    Есть ли какие-то среднестатистические данные?

    Зависит от контекста и пряморукости переносчика, но падение будет гарантировано.
    Ответ написан
    1 комментарий
  • Как реализовать аутентификацию в nextjs?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    подскажите, как лучше сделать все таки

    Не использовать фреймворк для генерации динамики и статики, а использовать профильный фреймворк для работы на бэке, например nestjs.
    https://docs.nestjs.com/security/authentication
    Ответ написан