Объекты среды выполнения
Счетчики
Счетчики используются для более удобной организации счета, например, при итерациях. Счетчиков может быть сколько угодно, вы должны лишь задать имя счетчику и проинициализировать его. После этого вы сможете увеличивать или уменьшать его значение на заданную величину, а также читать его текущее значение и менять логику работы в зависимости от результата.
Несколько основных моментов о счетчиках:
- Команды счетчиков могут быть использованы только в блоковом контексте.
- Счетчики существуют во всех контекстах и контекстно-независимы.
- Счетчики работают только с целыми числами.
- Могут быть использованы для подстановки данных, как переменные и аргументы.
Пример использования счетчиков:
---
config:
debug: 2
agent: Firefox
do:
- walk:
to: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html
do:
# регистрируем счетчик с именем `page` и значением равным 1
- counter_set:
name: page
value: 1
- walk:
repeat: 'yes'
to: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?to=<%page%>
do:
- find:
path: body
do:
# увеличиваем значение счетчика `page` (на 1 по умолчанию)
- counter_increment:
name: page
# читаем значение счетчика
- counter_get: page
# если значение счетчика будет равно 3, завершаем выполнение диггера
- if:
match: 3
do:
- exit
Время | Уровень | Сообщение |
---|---|---|
2017-10-21 20:24:52:954 | info | Stopped by exit command |
2017-10-21 20:24:52:946 | debug | True |
2017-10-21 20:24:52:940 | debug | Matching register value with: 3 |
2017-10-21 20:24:52:933 | debug | Set register to counter's page value: 3 |
2017-10-21 20:24:52:926 | debug | Counter page has been incremented to: 3 |
2017-10-21 20:24:52:918 | debug | Block content:
<h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> |
2017-10-21 20:24:52:910 | debug | Number of found blocks: 1 |
2017-10-21 20:24:52:902 | debug | Looking for: body |
2017-10-21 20:24:52:890 | debug | Page content: <html lang="ru"> <head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body> </html> |
2017-10-21 20:24:52:865 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html |
2017-10-21 20:24:52:858 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html |
2017-10-21 20:24:52:850 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?to=2 |
2017-10-21 20:24:52:841 | debug | False |
2017-10-21 20:24:52:833 | debug | Matching register value with: 3 |
2017-10-21 20:24:52:821 | debug | Set register to counter's page value: 2 |
2017-10-21 20:24:52:812 | debug | Counter page has been incremented to: 2 |
2017-10-21 20:24:52:804 | debug | Block content:
<h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> |
2017-10-21 20:24:52:796 | debug | Number of found blocks: 1 |
2017-10-21 20:24:52:788 | debug | Looking for: body |
2017-10-21 20:24:52:775 | debug | Page content: <html lang="ru"> <head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body> </html> |
2017-10-21 20:24:52:751 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html |
2017-10-21 20:24:52:740 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html |
2017-10-21 20:24:52:733 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?to=1 |
2017-10-21 20:24:52:726 | debug | Set counter page to value: 1 |
2017-10-21 20:24:52:713 | debug | Page content: <html lang="ru"> <head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body> </html> |
2017-10-21 20:24:52:454 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html |
2017-10-21 20:24:52:447 | info | Starting scrape |
2017-10-21 20:24:52:434 | debug | Setting up default proxy |
2017-10-21 20:24:52:421 | debug | Setting up surf |
2017-10-21 20:24:52:394 | info | Starting digger: meta-lang-counter [1854] |