Не знаю как автору вопроса, но мне в свое время сильно "не хватило" Scala, когда потребовалось поднимать один сервис на VPS с 128Мб, на котором еще СУБД и веб-панель крутились.
abcyu: Ваш комментарий появился пока я писал об этом же в своем ответе. Хоть это и совпадение, но ваш комментарий оказался раньше по времени, признаю это.
abcd0x00: Будьте любезны, подскажите как ее можно сократить в два раза при условии что:
1. И node.text, и node.tail могут содержать значения None;
2. Каждый фрагмент должен быть очищен через .strip() от пробелов по краям, чтобы не получить более одного подряд идущего пробела на стыках фрагментов.
3. Пустые строки не должны попадать на вход join, чтобы не получить более одного подряд идущего пробела на стыках фрагментов.
Алексей Зорин:
3. Конечно, работает, потому что запрос валидный, но эвристический анализатор с каждым таким запросом повышает вероятность того, что IP работает бот. Когда вероятность достигает некоторого значения - вылетает капча.
4. Я так и знал, что вам это нужно. Это нужно всем ботам. Но живой человек задаст такой запрос с вероятностью 0.01%. На этом и основан отлов ботов.
6. Во-первых, люди отличаются от ботов по поведению. А у Гугла куча средств по анализу поведения на собственных страницах.
Во-вторых, те кто сидят под NAT, натыкаются на капчу чаще остальных, а если среди них попадается один ботовод, то капча начинается тотально у всех, они начинают донимать техподдержку, постепенно это начинает напрягать провайдера и он раскошеливается на дополнительный пул IP. Если бы не это, мы бы, наверное, все сейчас под NAT сидели.
Pavel Designer: Из готовых решений существует, например - goaccess.io Там, среди прочего, есть статистика по Referrer. У меня на всех серверах раньше стоял.
Еще существует www.hping.org/visitors , ничего не скажу о нем, не пользовался.
Вообще часто люди сами пишут (или заказывают) себе (web или не_web) ui исходя из собственных нужд. Лог можно представить как таблицу БД, остается прикрутить несколько view к этой таблице исходя из того в каких разрезах вас интересует статистика.
Дело совсем не в скорости загрузки. Просто это ЕДИНСТВЕННЫЙ способ, который позволяет отследить абсолютно ВСЕХ посетителей. Потому что, например, меня, как посетителя, ни один внешний счетчик не увидит и не посчитает. А мимо логов сервера мне уже не проскочить.
А проблема в том, что вы недооцениваете сложность задачи. Прежде чем что-то искать на странице, надо сначала из нее извлечь текст без разметки, а для этого придется полностью ее распарсить, а потом собрать все текстовые элементы обратно в единый текст.
А ваш
text.count(word)<code> пересчитает все теги, атрибуты, комментарии, скрипты и стили.
ВэйДлин: Какие такие "обычные" пользователи (или люди вообще)? Бывает люди грамотные и бывают люди безграмотные. И это относится не только к компьютерной грамотности.
У безграмотного человека есть три пути:
1. Учиться и становиться грамотным.
2. Постоянно платить другим грамотным, которые не поленились научиться.
3. Вечно страдать.
abcyu: Действительно, возможность самостоятельного (не централизованного из репозитария) обновление софта несколько ломает концепцию системной безопасности. Поэтому в офисах часто настраивают права, так чтобы даже браузер не смог сам обновиться, там админ сам вручную обновляет весь софт, когда поступает информация о новых zeroday уязвимостях в старом софте.
В любом случае, масштаб разрушений и степень компрометации системы несопоставимы в случаях когда вредонос получил админские права и не получил. Все что он натворит без админских прав можно откатить в полминуты, если производились регулярные бекапы содержимого профиля.
А через какой шлюз они Интернет получают? Если это машина под Linux или роутер под OpenWrt (прошить можно), то можно настроить маршрутизацию на прокси.
Но с HTTP в любом случае ничего сделать нельзя, если только не прописать свой поддельный сертификат в доверенные сертификаты на все машины.