Итераторы
CSV итератор
Итераторы типа csv используются в случаях, когда вам нужно проитерировать по целому набору значений для определенного поля или аргумента. Диггер самостоятельно разберёт переданные значения и создаст список наборов аргументов. Для иниализации итератора используются следующие параметры:
Параметр | Описание |
---|---|
type | Константа, определяющая тип итератора, имеет значение csv. |
name | Имя аргумента. |
value | Значения аргумента в csv формате (набор значений, разделенных запятой). |
Ниже приведен пример инициализации подобного итератора:
iterator:
- type: csv
# ИМЯ АРГУМЕНТА
name: age
# НАБОР ЗНАЧЕНИЙ
value: 1,2,3,4
В результате получится следующий список наборов полей со значениями, для каждого из которых диггер будет исполнять основной логический блок:
[
{ "age": 1 },
{ "age": 2 },
{ "age": 3 },
{ "age": 4 }
]
Пример использования итератора в диггере:
---
config:
debug: 2
agent: Firefox
iterator:
type: csv
name: age
value: 18,19,25
do:
- walk:
to: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=<%age%>
do:
Время | Уровень | Сообщение |
---|---|---|
2017-10-23 15:09:19:464 | info | Scrape is done |
2017-10-23 15:09:19:449 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:09:19:422 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=19 |
2017-10-23 15:09:19:413 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=19 |
2017-10-23 15:09:19:405 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=25 |
2017-10-23 15:09:19:390 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:09:19:364 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=18 |
2017-10-23 15:09:19:353 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=18 |
2017-10-23 15:09:19:345 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=19 |
2017-10-23 15:09:19:332 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:09:18:944 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=18 |
2017-10-23 15:09:18:935 | info | Starting scrape |
2017-10-23 15:09:18:914 | debug | Setting up default proxy |
2017-10-23 15:09:18:900 | debug | Setting up surf |
2017-10-23 15:09:18:867 | info | Starting digger: meta-lang-iterator-csv [1860] |
Вы можете использовать комбинацию итераторов для создания списка со всеми возможными комбинациями аргументов из разных итераторов.
Пример использования комбинации итераторов в диггере:
---
config:
debug: 2
agent: Firefox
iterator:
# по датам
- type: date
start: '2017-10-01'
period: 2
interval: 1
template: '%Y-%m-%d'
# и возрасту
- type: csv
name: age
value: 30,40
do:
- walk:
to: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=<%age%>&from=<%start_date%>
do:
Время | Уровень | Сообщение |
---|---|---|
2017-10-23 15:36:56:946 | info | Scrape is done |
2017-10-23 15:36:56:932 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:36:56:903 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=30&from=2017-10-02 |
2017-10-23 15:36:56:894 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=30&from=2017-10-02 |
2017-10-23 15:36:56:885 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=40&from=2017-10-02 |
2017-10-23 15:36:56:871 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:36:56:844 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=40&from=2017-10-01 |
2017-10-23 15:36:56:836 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=40&from=2017-10-01 |
2017-10-23 15:36:56:829 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=30&from=2017-10-02 |
2017-10-23 15:36:56:817 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:36:56:792 | debug | Referers: Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=30&from=2017-10-01 |
2017-10-23 15:36:56:784 | debug | Referer: https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=30&from=2017-10-01 |
2017-10-23 15:36:56:778 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=40&from=2017-10-01 |
2017-10-23 15:36:56:766 | debug | Page content: <!DOCTYPE html><html lang="ru"><head> <meta charset="UTF-8"/> <title>Diggernaut | Мета-язык | Пример объекта</title> </head> <body> <h1>Заголовок-1</h1> <p>Пример описания чего-то там.</p> </body></html> |
2017-10-23 15:36:56:311 | info | Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-ru.html?vozrast=30&from=2017-10-01 |
2017-10-23 15:36:56:302 | info | Starting scrape |
2017-10-23 15:36:56:286 | debug | Setting up default proxy |
2017-10-23 15:36:56:277 | debug | Setting up surf |
2017-10-23 15:36:56:247 | info | Starting digger: meta-lang-iterator-combo [1861] |
Далее мы рассмотрим итераторы типа fieldset.