Посоветуйте прогу, которая отслеживает изменения на странице - Страница 2
+ Ответить
Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

Тема: Посоветуйте прогу, которая отслеживает изменения на странице

  1. #11

    По умолчанию

    палят!
    No brain no fear!

  2. #12

    По умолчанию

    Цитата Сообщение от lookout Посмотреть сообщение
    ..как будет выглядеть строка для уведомления, когда на главной страницы веломании появится, например, сообщение от Juggernaut в разделе Беседка?
    Код:
    while [ 1 ]; do curl -b печенька.txt -s http://forum.velomania.ru/forum.php | grep -m1 'forumtitle"><a href="forumdisplay.php?f=11">Беседка' -A77 | grep -qm1 'Juggernaut' && notify-send 'Juggernaut опять выходит на связь!' && break; sleep 2; done
    Последний раз редактировалось Kaidan; 18.02.2016 в 04:45. Причина: site-specific mess

  3. #13

    По умолчанию

    Не срабатывает когда нужно, зато срабатывает когда не нужно.
    Ок, после исправления - теперь срабатывает и когда нужно, и когда не нужно.

    ---------- Добавлено в 20:53 ---------- Предыдущее сообщение было в 20:51 ----------

    А вот так на самом деле работает..
    Код:
    var адрес = 'http://forum.velomania.ru/forum.php', раздел='Беседка', автор ='Juggernaut', интервал = 15;
    var func = function() {$.get(адрес, function(d) {
    	if ($('.forumrow').has('.forumtitle a:contains('+раздел+')').has('.username:contains('+автор+')').length) {
    		alert('Сообщение автора "'+автор+'" найдено');
    	} else {
    		setTimeout(func, интервал*1000);
    	}
    })};
    func();


    ---------- Добавлено в 20:57 ---------- Предыдущее сообщение было в 20:53 ----------

    Цитата Сообщение от Juggernaut Посмотреть сообщение
    палят!
    Извини, посмотрел главную страницу - там был твой ник В следующий раз буду только свой в качестве примера приводить..
    Последний раз редактировалось lookout; 19.02.2016 в 22:45.

  4. #14

    По умолчанию

    Цитата Сообщение от lookout Посмотреть сообщение
    срабатывает .. когда не нужно
    Proof or GTFO.

    Цитата Сообщение от lookout Посмотреть сообщение
    А вот так на самом деле работает..
    Не работает. Ни на роутере "за тыщу рэ", ни на бюджетном хостинге с 256MB ОЗУ, так, чтобы каждые 2-3 сек, хотя бы 20 страниц мониторить. Пример такой задачи для "домашних" целей: отслеживание появления билетов в продаже на несколько спектаклей, на разные даты. Если не затруднит, пример в студию, как такой скрипт справится с задачей и сколько ресурсов будет выжирать при этом. И чур не халтурить c микро-страницами. В качестве эталона - афиша Большого Театра.

  5. #15

    По умолчанию

    Цитата Сообщение от Kaidan Посмотреть сообщение
    Proof or GTFO.
    Для этого мне придётся создать тему в беседке "Juggernaut ломает греп", чего я делать не хочу )
    Цитата Сообщение от Kaidan Посмотреть сообщение
    Не работает. Ни на роутере "за тыщу рэ", ни на бюджетном хостинге с 256MB ОЗУ, так, чтобы каждые 2-3 сек, хотя бы 20 страниц мониторить. Пример такой задачи для "домашних" целей: отслеживание появления билетов в продаже на несколько спектаклей, на разные даты. Если не затруднит, пример в студию, как такой скрипт справится с задачей и сколько ресурсов будет выжирать при этом. И чур не халтурить c микро-страницами. В качестве эталона - афиша Большого Театра.
    Он также не работает на калькуляторе, принтере, картофелине...
    Но для его работы нужно 0 (ноль) ресурсов пользователя. И не надо ни роутеры держать включёнными, ни хостинги покупать, и потом ещё и их админить..
    Регишься на openshift, там бесплатно запускаешь всё что угодно на node.js сервере - https://developers.openshift.com/en/...-overview.html

    А вот твой у меня не пошёл на ротуере, т.к. места для курла уже нет.
    Можно конечно было что-то потереть.. но честно говоря, во времена, когда космические корабли бороздят просторы Большого театра, снова париться с этим микроменеджментом нет никакого желания.

    ---------- Добавлено в 23:14 ---------- Предыдущее сообщение было в 23:12 ----------

    Цитата Сообщение от Kaidan Посмотреть сообщение
    Пример такой задачи для "домашних" целей: отслеживание появления билетов в продаже на несколько спектаклей, на разные даты.
    Уточни, откуда спектакли и даты берутся? опять хардкод, как у тебя?
    Последний раз редактировалось lookout; 20.02.2016 в 23:26.

  6. #16

    По умолчанию

    Цитата Сообщение от lookout Посмотреть сообщение
    Для этого мне придётся создать тему в беседке "Juggernaut ломает греп", чего я делать не хочу )
    Какое отношение имеет создание другой темы, к вопросу предоставления доказательств к вашему утверждению в этой?

    Цитата Сообщение от lookout Посмотреть сообщение
    Он также не работает на калькуляторе, принтере, картофелине..
    Распространненый полемический прием, используемый при отсутствии собственных веских аргументов в споре: «Сведение к абсурду».

    Цитата Сообщение от lookout Посмотреть сообщение
    Регишься на openshift, там бесплатно запускаешь всё что угодно
    Мсье теоретик? "Бесплатно" относится к проектам уровня "мааам смари у меня hello world работает на сервере!". Трафик и конская нагрузка на CPU от js-парсера потребуют вложений. Вот почему мы до сих пор не видим решения предложенной мною задачи с билетами от вас.

    Цитата Сообщение от lookout Посмотреть сообщение
    тебя
    Мы с вами на брудершафт не пили.

    Цитата Сообщение от lookout Посмотреть сообщение
    откуда спектакли и даты берутся?
    Откуда берутся спектакли и даты можно уточнить в дирекции Большого Театра.

    Цитата Сообщение от lookout Посмотреть сообщение
    париться с этим микроменеджментом нет никакого желания
    Вся суть погромистов на библиотечке jQuery. Оптимизация, датчики, микроустройства, "Интернет вещей"? Не, не слышал.

  7. #17

    По умолчанию

    Вообще-то смысл первого сообщения в том, что можно использовать нормальные парсеры html вместо грепа, которые существуют и в консольке.
    А код под JQuery был приведён как пример насколько логичнее он выглядит, и дальше был пример по надёжности - с грепом получилось на второй раз, да и то в глючащем полурабочем варианте, с парсером html - с первого раза и надёжно..
    Можно вместо jquery использовать консольный перл и пайтон, какие проблемы.
    Цитата Сообщение от Kaidan Посмотреть сообщение
    Откуда берутся спектакли и даты можно уточнить в дирекции Большого Театра.
    Конечно же имел в виду - откуда скрипт берёт даты и спектали для отслеживания. Впрочем уже неактуально - я запустил более общий сервис на опеншифте для собственного использования, до которого раньше руки не доходили. Так что в каком-то смысле - спасибо )

    А битва скорости написания кода и стоимости его поддержки vs скорость выполнения кода была проиграна последней стороной ещё в восьмидесятых-девяностых.. тем более что настолько примитивные задачи не являются критичными к скорости выполнения, а если бы были - писались бы на си, не баше )))

  8. #18

    По умолчанию

    Цитата Сообщение от lookout Посмотреть сообщение
    можно использовать нормальные парсеры html вместо грепа
    Можно, хотя как гласит Бритва Оккама: «Не следует плодить сущее без необходимости». Парсинг HTML, в плане вычислительных ресурсов - дорогая операция. В большинстве задач мониторинга web-страниц можно и нужно обходиться без него. jQuery в этом качестве - изврат и тормоза, подойдет разве что для быстрого прототипирования или мелкой задачки. Подтверждение моих слов - так и не написанная вами задача с мониторингом билетов. Выстраивать каждые 3 секунды DOM для каждой из двух десятков страниц, а потом искать по нему на js - задача требующая в десятки раз больше вычислительных ресурсов, чем требуется grep.


    Цитата Сообщение от lookout Посмотреть сообщение
    глючащем полурабочем варианте
    Скрипт работает идеально - как швейцарские часы. Он надежен и прост - как автомат Калашникова.


    Цитата Сообщение от lookout Посмотреть сообщение
    с парсером html - с первого раза и надёжно
    Ваш вариант с браузером и jQuery - нежизнеспособен изначально и при масштабировании (20 страниц каждые 3 сек, например) просто умрет под нагрузкой. Вы легко можете работающим примером опровергнуть это утве.. А нет - не можете. Какая досада.

    Цитата Сообщение от lookout Посмотреть сообщение
    А битва скорости написания кода и стоимости его поддержки vs скорость выполнения кода была проиграна последней стороной ещё в восьмидесятых-девяностых..
    У вас слишком категоричные утверждения, то ли в силу юного возраста, то ли ввиду банального невежества. См. эффект Даннинга-Крюгера.

    Цитата Сообщение от lookout Посмотреть сообщение
    настолько примитивные задачи не являются критичными к скорости выполнения
    Вы не в теме. Выброс "коммерческих" билетов на сайт и их мгновенная скупка "билетной мафией" - очень даже критичны к скорости реакции.
    Счет идет на секунды.

  9. #19

    По умолчанию

    Цитата Сообщение от Kaidan Посмотреть сообщение
    задача требующая в десятки раз больше вычислительных ресурсов, чем
    Покажите load average вашего высоконгруженного локалхоста. Моя думать, что там простой 99,999% в год.

  10. #20

    По умолчанию

    Цитата Сообщение от Kaidan Посмотреть сообщение
    Вы не в теме.
    Так сформулируйте нормально задачу. Смысл мне тратить время на какие-то отрывочные намёки?
    Селекторы там ничем не сложнее любых других:
    Код:
    Поиск по имени:
    $('.timetable_content tr:not(.invisible) .timetable_content__performance_title:contains("Карлос")')
    По дате:
    $('.timetable_content tr:not(.invisible) .timetable_content__date_date:contains("март")')
    итд
    А что с этим делать - уже сильно зависит от конкретной цели.
    Цитата Сообщение от Kaidan Посмотреть сообщение
    Ваш вариант с браузером и jQuery - нежизнеспособен изначально и при масштабировании (20 страниц каждые 3 сек, например) просто умрет под нагрузкой. Вы легко можете работающим примером опровергнуть это утве.. А нет - не можете. Какая досада.
    20 страниц каждые 3 секунды это смешно )) тем более для тормознутого сайта большого:
    Код:
    var адрес = 'http://www.bolshoi.ru/timetable/';
    var func = function() {console.time("загрузка страницы");$.get(адрес, function(d) {
        console.timeEnd("загрузка страницы");
        console.time("поиск");
    	if ($('.timetable_content tr:not(.invisible)')
    			.has('.timetable_content__performance_title:contains("Карлос")')
    			.has('.timetable_content__date_date:contains("март")').length) {
    		console.log('ЕСТЬ КАРЛОС В МАРТЕ!');
    	}
        console.timeEnd("поиск");
    });};
    func();
    Код:
    VM3781:4 загрузка страницы: 2682.000ms
    VM3781:9 ЕСТЬ КАРЛОС В МАРТЕ!
    VM3781:11 поиск: 75.000ms
    Загрузка занимает в ~30 раз больше времени чем парсинг поиск самым медленным и неоптимизированным способом (из времени загрузки где-то 200-300 мс было потрачено на парсинг DOM джаваскриптом, это однократная операция)
    Последний раз редактировалось lookout; 03.03.2016 в 12:24. Причина: парсинг/поиск

+ Ответить

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Посоветуйте перчатки для зимы
    от Anonymous в разделе Одежда и снаряжение
    Ответов: 25
    Последнее сообщение: 01.12.2018, 22:02
  2. Посоветуйте
    от driver в разделе Технические вопросы
    Ответов: 18
    Последнее сообщение: 16.12.2015, 10:16
  3. Посоветуйте раму
    от NJ в разделе Технические вопросы
    Ответов: 1
    Последнее сообщение: 19.12.2004, 17:36