Skip to content

Commit ae83603

Browse files
authored
Clarify problem description and search template examples
Updated the text to clarify the description of the problem and the examples for data search templates.
1 parent db9514c commit ae83603

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

dou/article.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
* змінити або забрали `id`
4040
* і т.п.
4141

42-
Проблема тут фундаментальна: **ми описуємо структуру DOM, а не дані.**
42+
Проблема тут фундаментальна: для пошуку даних **ми описуємо структуру DOM, а не самі дані.**
4343

4444
## Ідея: описувати дані, а не структуру DOM
4545

@@ -58,14 +58,14 @@
5858

5959
![image](https://github.com/tmptrash/harvester/blob/main/dou/slides/Screenshot%202025-11-30%20at%2014.48.55-cut.png?raw=true)
6060

61-
Справа-зверху ви можете бачити приклад шаблону, який описує продукт, його ціну, картинку та його SKU (унікальний номер). Давайте трішки зупинимось на його форматі.
61+
Справа-зверху ви можете бачити приклад шаблону, який описує продукт, його ціну, картинку та SKU (унікальний номер) для обох випадків. Давайте трішки зупинимось на його форматі. Загалом - це проста багаторядкова JS стрічка, яка описує дерево даних. Кожна лінія - це тег в DOM дереві, де ми вказуємо деталі пошуку тексту в цьому тезі. Структура не обов'язково має бути схожа на фактичний DOM. Вона має бути як мінімум близька до оригінальної. Кожна стрічка має містити ім'я тегу, опціональну змінну для тексту і опціональну змінну для атрибуту. Ось список прикладів строк для формування шаблонів пошуку даних:
6262

63-
* `*` — будь-який тег, у якому є текст → поле `product`
64-
* `span{price:float}` → беремо число з тексту
65-
* `img[img=src]` → беремо атрибут `src`
66-
* `div{sku:with:SKU}` → беремо рядок, який містить “SKU”
67-
68-
---
63+
* `*`означає "шукати будь-який тег"
64+
* `div` - означає "шукати конкретне ім'я тегу" (може бути `span`, `head`, що завгодно)
65+
* `span{price:float}` - означає "шукати `span` з числом типу `float` всередині" і покласти число в змінну `price`
66+
* `img[img=src]` - означає "шукати тег `img` з атрибутом `src`" і покласти значення в змінну `img`
67+
* `div{sku:with:SKU}` - означає "шукати тег `div` с текстом, який має підтекст 'SKU'" і покласти в змінну `sku`
68+
* `p{text}[attr=ref]` - означає "шукати тег `p` с будь яким текстом і атрибутом `ref`" і покласти текст в змінну `text`, а атрибут в змінну `attr`
6969

7070
# 🧪 Результат, який повертає Harvester
7171

0 commit comments

Comments
 (0)