Местоположение
Россия

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (38)

Лучшие ответы пользователя

Все ответы (80)
  • Как сайты понимают, что их посетил бот на Selenium, а не реальный юзер?

    @qid00000000
    Мало что знаю, но информацию найду в гугле
    Алексей очень хорошо описал причины, которые подтверждаются некоторым личным опытом.

    Очень часто, в логах сервера, в user-agent можно встретить selenium. Достаточно в конфиг прописать правило отклонения запросов с user-agent: (*selenium*) и проблема исчезает.

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

    Обходить это, можно загружая страницу через браузер и случайно сдвигать мышь, случайное количество раз (от 5-10), через случайные промежутки. Спасет от ручной проверки, для большинства сайтов.

    Для 100% гарантии, чтобы не банили, нужно "наводиться" на ссылки, которые нужно распарсить следующими (по очереди). Однако, в этом случае, вы пожертвуете производительностью парсера.

    Как реализовать: Поднять сервис (несколько) на машине с vnc и получать страницу через браузер, имитируя работу мышкой.

    Но, обычно, указать корректный user-agent достаточно. (Я, почему-то уверен, что вы остановитесь на этом варианте).

    Однако, самым примитивным способом отследить, что твой сайт парсят, является мониторинг нагрузки сайта на сервер. Дело в том, что подавляющее большинство сайтов находиться на виртуальном хостинге, где владельцу сайта, сдается в аренду часть вычислительной мощности сервера.

    Владельцу сайта проще заблокировать тот ip, с которого сыпятся запросы, чем проводить оптимизацию кода сайта и выяснять, по какой причине вообще создалась нагрузка (например, из-за не проставленных индексов в бд).
    А порой, это является единственным вариантом, т.к. на сервер, может прилететь за час свыше 10000 запросов к сайту с одного ip.
    Для сравнения от yandex/google, за сутки, может прийти около 4000 запросов (с минимальными настройками индексации).

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

    @qid00000000
    Мало что знаю, но информацию найду в гугле
    Осторожно, субъективный ответ!
    thunderbird - для меня лучшее решение, есть поддержка плагинов (QuickText в особенности), которые позволяют оптимизировать однотипную работу.

    Если на диске компьютера мало памяти, то главное, использовать протокол imap и не хранить письма локально. Не единожды прострелена нога, когда объем почты достигал объемов жесткого диска.

    Portable версию вроде можно сварганить, но я пользуюсь linux, а там - thunderbird предустановлен.
    Ответ написан
  • Какой проект подойдет для Джуниора Python?

    @qid00000000
    Мало что знаю, но информацию найду в гугле
    Возьми интересную задачу, которую ты хочешь решить (не важно, насколько сложна она будет).

    Декомпозируй (разбей проблемы на лёгкие части).

    Организуй процесс решения проблемы:
    Что ты будешь делать, если поймёшь, что идёшь в неправильном направлении (git)? Как будешь ставить, отслеживать и выполнять задачи (таск трекер)? Как проверить, что то, что ты сделал работает корректно (тестирование)?

    Ответь на вопросы:
    Как запускать? Через что? На чем?

    Потом, распиши процесс написания частей, контрольные точки проверки, выставить дедлайны. .. Ну и Гугл тебе в помощь..

    Так и родится твой проект.
    Ответ написан
  • Как определить что сервер именно локальный?

    @qid00000000
    Мало что знаю, но информацию найду в гугле
    Наверное, самый простой способ - через переменную окружения.

    Например, если установлена ENV_DEV_LOCAL, то ты на локалке :).
    Ответ написан
  • Как упростить формат ввода номера телефона в php?

    @qid00000000
    Мало что знаю, но информацию найду в гугле
    Телефонный номер, это набор цифр, вы можете составить такую регулярку:

    "[0-9]{4,134}"

    4 - минимальная длинна цифр (номера 911 и пр. вам нет смысла принимать)
    134 - максимальная длинна, которая вам нужна

    Эту же задачу, можно решить так:
    "\d{4,134}"
    "[0-9]+" от 1 символа

    Если прям запариться, то нужно учесть все форматы вводимых данных, от этого регулярка станет сложнее.
    Ответ написан