Отслеживание изменений на сайте!

Обсуждение программ nnCron и nnCron LITE

Postby Decomo » Tue, 08 Nov 2011, 18:27

Ehhh wrote:Пробовал эту штуку.
Не работает :(


Значит, что-то не так..=)
HTTP-GET возвращает код ошибки, отличный от нуля.
Попробуй выполнить задачу
Code: Select all
#( Mamba.ru
NoActive
Action:
  S" http://mamba.ru" HTTP-GET MSG: "%0 esPICK%" 2DROP
)#


Походу, будет ошибка
10054 WSAECONNRESET Connection reset by peer.

================================================

Через wget тоже ничего не вышло. А cURL справился.
Code: Select all
#( mamba.ru
\ каждые 5 минут
Time: */5
Action:
  SWHide NormalPriority
  START-APPW: curl -o mamba.htm http://mamba.ru/USERNAME
  RE-MATCH: "%FILE: mamba.htm%" "/UserOnSite/"
    IF MSG: "Пользователь на сайте!" THEN
  S" mamba.htm" FDELETE
)#


Предполагается, что curl.exe лежит в папке с ннкроном.
Скачать можно тут.
Last edited by Decomo on Tue, 08 Nov 2011, 19:16, edited 1 time in total.
<?xml version="1.0" encoding="UTF-8"?>
User avatar
Decomo
 
Posts: 86
Joined: Tue, 13 Jan 2009, 02:52
Location: Republic Of Belarus

Re: Отслеживание изменений на сайте!

Postby I1iF » Tue, 08 Nov 2011, 18:45

makrus wrote:I1iF
Может быть у кого-нибудь есть готовый скрипт для примера?
Да практически уже готовый скрипт есть чуть выше в топике..., с его помощью скачай нужную тебе страничку и выложи на файлообменник, укажи какую строчку надо контролировать, а уже я, или кто другой быстрее сможет, попробуем доделать его именно для тебя.
Но этот скрипт будет не очень надежен, т.к. в случае более-менее серьезных изменений в структуре html-кода страницы он может и не найти нужную часть по которой будет вестись сравнение и его прийдется переделывать.

Вот ссылка на скаченную страничку:http://dl.dropbox.com/u/33764550/real_pac.htm
Проверять надо это:
1. Реальные пацаны / 1-14, 16-53 серии из ?? (Жанна Кадникова) [2010-11, Комедия, SATRip]
следующий раз будет:
2. Реальные пацаны / 1-14, 16-54 серии из ?? (Жанна Кадникова) [2010-11, Комедия, SATRip]
и т.д.
Сможете сделать?
User avatar
I1iF
 
Posts: 34
Joined: Fri, 25 Jan 2008, 12:32

Re: Отслеживание изменений на сайте!

Postby Morituruz » Tue, 08 Nov 2011, 19:30

Вот для себя сделал так:
Code: Select all

#( checking_for_new_porn
\ каждые два часа:
Time: 0 */2  * * * *
SingleInstance
Rule: ONLINE?
;
0 VALUE zhtml
\ 100 кБ на страничку должно хватить:
100000 ALLOCATE THROW TO zhtml
\ а тут будем хранить заголовок темы на форуме:
fVAR lmatch
Action:
\ скачиваем вот эту страницу:
S" http://rutracker.org/forum/viewtopic.php?t=3550420" HTTP-GET 0=
IF
   2DUP zhtml ZPLACE
   \ ищем то, что находится в коде страницы между 3550420"> и </a></h1>
   \ Можно конечно сразу текст написать искомый, но совпадение в коде страницы должно быть только одно!
   S" /(3550420\x22\>)?#9.+(<\/a><\/h1>)?=/i" RE-ALL
      \ сравниваем найденное (если нашлось конечно) с сохранённой строчкой
      $0 lmatch COMPARE 0<>
      IF
         \ если не совпадает, спрашиваем
         S" Было:%crlf%%lmatch%%crlf%Стало:%crlf%%$0%%crlf%Сохранить?" EVAL-SUBST QUERY
         IF
            \ если нажимаем да, то новый заголовок сохраняем, и в дальнейшем сравниваться будет с ним
            $0 TO lmatch
         THEN
      ELSE
         \ заголовок темы не изменился:
         \ MSG: "Без изменений"
      THEN
   ;RE-ALL
ELSE
   2DROP
   \ что-то не получилось скачать
   16 S" checking_for_new_porn" DROP S" Ошибка загрузки страницы" DROP 0 MessageBoxA DROP
THEN
)#


Хочу ещё свести это дело к списку, т.е. добавление сайта для проверки свести к
Z" site" site_list AppendNode
Z" regexp" re_list AppendNode
и проверять их пачками.
Подскажите, как бы так удобно хранить искомый текст, который в вышеприведённой задаче хранится в файловой переменной lmatch?
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re:

Postby Ehhh » Wed, 09 Nov 2011, 01:08

Decomo wrote:А cURL справился.
Code: Select all
#( mamba.ru
\ каждые 5 минут
Time: */5
Action:
  SWHide NormalPriority
  START-APPW: curl -o mamba.htm http://mamba.ru/USERNAME
  RE-MATCH: "%FILE: mamba.htm%" "/UserOnSite/"
    IF MSG: "Пользователь на сайте!" THEN
  S" mamba.htm" FDELETE
)#


Предполагается, что curl.exe лежит в папке с ннкроном.
Скачать можно тут.


Спасибо, действительно так все отлично работает с Мамбой.
В Контакте тоже отлично работает.
А вот Одноклассники страничку без логина не отдают, будем решать.

Видимо иногда проще использовать сторонние утилиты (типа curl ), чем ломать голову, пытаясь обойтись Кроном.
Ehhh
 
Posts: 7
Joined: Mon, 07 Nov 2011, 21:40

Re: Отслеживание изменений на сайте!

Postby I1iF » Wed, 09 Nov 2011, 09:15

Moriturus,
Файловая переменная выглядит:  РµР°Р»СЊРЅС‹Рµ пацаны / 1-14, 16-53 серии РёР· ?? (Жанна Кадникова) [2010-11, Комедия, SATRip]
Можно, как-нибудь поменять кодировку?
И еще, при совпадении выражения нет сообщения: "Без изменений".
User avatar
I1iF
 
Posts: 34
Joined: Fri, 25 Jan 2008, 12:32

Re: Отслеживание изменений на сайте!

Postby Morituruz » Wed, 09 Nov 2011, 09:36

I1iF wrote:Moriturus,
Файловая переменная выглядит:  РµР°Р»СЊРЅС‹Рµ пацаны / 1-14, 16-53 серии РёР· ?? (Жанна Кадникова) [2010-11, Комедия, SATRip]
Можно, как-нибудь поменять кодировку?

хмм, возможно надо открыть файловую переменную (в каталоге крона в папке var) в хорошем текстовом редакторе (который позволяет сохранять в разные кодировки) и сохранить в кодировке ANSI.

I1iF wrote:И еще, при совпадении выражения нет сообщения: "Без изменений".

Так оно ж закомментировано.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Отслеживание изменений на сайте!

Postby I1iF » Wed, 09 Nov 2011, 10:21

1. Сохранил в кодировке ANSI - при сравнении различия получились (один текст в разных кодировках). Да это в принципе не важно. Мне бы лучше вместо сообщения мылом ссылку на тему присылать. Есть возможность это устроить?
2. Не обратил внимание на комментарий.
User avatar
I1iF
 
Posts: 34
Joined: Fri, 25 Jan 2008, 12:32

Re: Отслеживание изменений на сайте!

Postby Morituruz » Wed, 09 Nov 2011, 10:40

I1iF wrote:Мне бы лучше вместо сообщения мылом ссылку на тему присылать. Есть возможность это устроить?

Для отправки письма есть плагин:
viewtopic.php?f=23&t=9480#p20607
там же и пример использования есть. Вам нужно добавить этот плагин и изменить задачу в соответствии с примером, как-то так (работу не проверял) :

Code: Select all
#( checking_for_new_porn
\ каждые два часа:
Time: 0 */2  * * * *
SingleInstance
Rule: ONLINE?
;
0 VALUE zhtml
\ 100 кБ на страничку должно хватить:
100000 ALLOCATE THROW TO zhtml
\ а тут будем хранить заголовок темы на форуме:
fVAR lmatch
Action:
\ скачиваем вот эту страницу:
S" http://rutracker.org/forum/viewtopic.php?t=3550420" HTTP-GET 0=
IF
   2DUP zhtml ZPLACE
   \ ищем то, что находится в коде страницы между 3550420"> и </a></h1>
   \ Можно конечно сразу текст написать искомый, но совпадение в коде страницы должно быть только одно!
   S" /(3550420\x22\>)?#9.+(<\/a><\/h1>)?=/i" RE-ALL
      \ сравниваем найденное (если нашлось конечно) с сохранённой строчкой
      $0 lmatch COMPARE 0<>
      IF
    \ не забываем сохранить новый заголовок:
         $0 TO lmatch
         \ шлём письмо:
    Low-priority \ низкий приоритет
    Confirm-Reading \ подтверждение прочтения
    Confirm-Sending \ подтверждение доставки
    S" текст письма" \ текст
    S" тема письма" \ тема
    S" boss-pupkina@mailo.com" \ mail кому
    S" pupkin@mailo.com" \ mail от кого
    S" pupkin-re" \ логин
    S" pass" \ пароль
    S" smtp.mailo.com" 25 \ адрес smtp сервера и порт
    SMTP-SEND&ATTACH ?DUP IF MSG: "ошибка отправки: %0 esPICK%" THEN
      ELSE
         \ заголовок темы не изменился:
         \ MSG: "Без изменений"
      THEN
   ;RE-ALL
ELSE
   2DROP
   \ что-то не получилось скачать
   16 S" checking_for_new_porn" DROP S" Ошибка загрузки страницы" DROP 0 MessageBoxA DROP
THEN
)#
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Отслеживание изменений на сайте!

Postby I1iF » Wed, 09 Nov 2011, 10:53

Спасибо, буду проверять.
User avatar
I1iF
 
Posts: 34
Joined: Fri, 25 Jan 2008, 12:32

Re: Отслеживание изменений на сайте!

Postby Wyz » Wed, 09 Nov 2011, 12:45

Для перекодирования есть слова UTF8>UNICODE и UNICODE>S.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Отслеживание изменений на сайте!

Postby I1iF » Thu, 10 Nov 2011, 12:23

Moriturus wrote:Хочу ещё свести это дело к списку, т.е. добавление сайта для проверки свести к
Z" site" site_list AppendNode
Z" regexp" re_list AppendNode
и проверять их пачками.
Подскажите, как бы так удобно хранить искомый текст, который в вышеприведённой задаче хранится в файловой переменной lmatch?

Решение не найдено еще?
User avatar
I1iF
 
Posts: 34
Joined: Fri, 25 Jan 2008, 12:32

Re: Отслеживание изменений на сайте!

Postby Morituruz » Thu, 10 Nov 2011, 12:43

Нет ещё. Какой вы жадный :)
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Отслеживание изменений на сайте!

Postby AlikasS » Thu, 10 Nov 2011, 12:57

Moriturus wrote:Хочу ещё свести это дело к списку, т.е. добавление сайта для проверки свести к
Z" site" site_list AppendNode
Z" regexp" re_list AppendNode
и проверять их пачками.
Подскажите, как бы так удобно хранить искомый текст, который в вышеприведённой задаче хранится в файловой переменной lmatch?

Code: Select all
#( пример_работа_со_списком
NoActive
VARIABLE f-list \ в списке будут хранится адреса az строк, которые содержат найденные имена файлов
0 VALUE TTTT
: f-action NodeValue ASCIIZ> MsgBox
\ получение значение элемента списка - адреса az строки из списка, преобразование в au строку
\ вывод au строки - имени файла
;
: f-see
\ получение значения элемента списка - адреса az строки из списка, преобразование в au строку
\ и сравнение с найденным файлом
NodeValue ASCIIZ> FOUND-FILENAME COMPARE 0=
IF
TRUE TO TTTT
ELSE
FALSE TO TTTT
THEN
;
: f-free NodeValue FREE DROP
\ получение значения элемента списка - адреса az строки из списка,
\ высвобождение зарезервированной памяти по этому адресу
;
Action:
FOR-FILES: "%ModuleDirName%*.tab*"
IS-DIR? 0=
IF
   ['] f-see f-list DoList \ в данном случае вроде не нужная проверка на совпадение, но  вдруг в др.случаях понадобится
   TTTT 0= IF
    \ если файла нет в списке, внесение адреса az строки с его именем в список
   FOUND-FILENAME S>ZALLOC f-list AddNode
   THEN
THEN
;FOR-FILES

 f-list @
 IF
\ список не пустой
    ['] f-action f-list DoList \ вывод занесенных значений
    ['] f-free f-list DoList \ очистка памяти отведенной под az строки
    f-list FreeList \ очистка списка
 THEN
)#
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Отслеживание изменений на сайте!

Postby makrus » Thu, 10 Nov 2011, 14:08

Moriturus
Подскажите, как бы так удобно хранить искомый текст, который в вышеприведённой задаче хранится в файловой переменной lmatch?
По-моему удобней всего в ini-файле, смотри плагин ini.spf
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Re: Отслеживание изменений на сайте!

Postby I1iF » Thu, 10 Nov 2011, 15:02

Спасибо, настроил под себя - работает нормально. А вот вторая задача (аналогичная этой), даже файловую переменную (с другим названием, конечно) не создает, почему-то.
Moriturus wrote:
I1iF wrote:Мне бы лучше вместо сообщения мылом ссылку на тему присылать. Есть возможность это устроить?

Для отправки письма есть плагин:
viewtopic.php?f=23&t=9480#p20607
там же и пример использования есть. Вам нужно добавить этот плагин и изменить задачу в соответствии с примером, как-то так (работу не проверял) :

Code: Select all
#( checking_for_new_porn
\ каждые два часа:
Time: 0 */2  * * * *
SingleInstance
Rule: ONLINE?
;
0 VALUE zhtml
\ 100 кБ на страничку должно хватить:
100000 ALLOCATE THROW TO zhtml
\ а тут будем хранить заголовок темы на форуме:
fVAR lmatch
Action:
\ скачиваем вот эту страницу:
S" http://rutracker.org/forum/viewtopic.php?t=3550420" HTTP-GET 0=
IF
   2DUP zhtml ZPLACE
   \ ищем то, что находится в коде страницы между 3550420"> и </a></h1>
   \ Можно конечно сразу текст написать искомый, но совпадение в коде страницы должно быть только одно!
   S" /(3550420\x22\>)?#9.+(<\/a><\/h1>)?=/i" RE-ALL
      \ сравниваем найденное (если нашлось конечно) с сохранённой строчкой
      $0 lmatch COMPARE 0<>
      IF
    \ не забываем сохранить новый заголовок:
         $0 TO lmatch
         \ шлём письмо:
    Low-priority \ низкий приоритет
    Confirm-Reading \ подтверждение прочтения
    Confirm-Sending \ подтверждение доставки
    S" текст письма" \ текст
    S" тема письма" \ тема
    S" boss-pupkina@mailo.com" \ mail кому
    S" pupkin@mailo.com" \ mail от кого
    S" pupkin-re" \ логин
    S" pass" \ пароль
    S" smtp.mailo.com" 25 \ адрес smtp сервера и порт
    SMTP-SEND&ATTACH ?DUP IF MSG: "ошибка отправки: %0 esPICK%" THEN
      ELSE
         \ заголовок темы не изменился:
         \ MSG: "Без изменений"
      THEN
   ;RE-ALL
ELSE
   2DROP
   \ что-то не получилось скачать
   16 S" checking_for_new_porn" DROP S" Ошибка загрузки страницы" DROP 0 MessageBoxA DROP
THEN
)#
User avatar
I1iF
 
Posts: 34
Joined: Fri, 25 Jan 2008, 12:32

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 4 guests