1
00:00:00,280 ⇒ 00:00:02,200
Привет. В этом видео я хочу поговорить
2
00:00:02,200 ⇒ 00:00:04,319
про парсинг и про подходы к парсингу.
3
00:00:04,319 ⇒ 00:00:07,439
Показать несколько примеров. И начал бы
4
00:00:07,439 ⇒ 00:00:09,240
я вот с такой вот карты и с такой
5
00:00:09,240 ⇒ 00:00:12,599
классификации, что парси мы данные
6
00:00:12,599 ⇒ 00:00:13,639
разные, структурированные,
7
00:00:13,639 ⇒ 00:00:15,280
неструктурированные для того, чтобы
8
00:00:15,280 ⇒ 00:00:18,279
получить из него, из них и форму, и
9
00:00:18,279 ⇒ 00:00:20,720
смысл, да, условно вот такую классную
10
00:00:20,720 ⇒ 00:00:23,439
табличку. Не просто табличку, но она ещё
11
00:00:23,439 ⇒ 00:00:25,599
должна иметь смысл отвечать нашим
12
00:00:25,599 ⇒ 00:00:28,080
задачам и так далее. Сами данные на
13
00:00:28,080 ⇒ 00:00:29,199
входе у нас могут быть
14
00:00:29,199 ⇒ 00:00:31,160
суперструктурированные. Вот пример
15
00:00:31,160 ⇒ 00:00:33,920
XML-файла, из которого мы можем дёрнуть
16
00:00:33,920 ⇒ 00:00:36,760
любой узел. Кто-то за нас уже эти данные
17
00:00:36,760 ⇒ 00:00:39,600
подготовил. Или данные могут быть, так
18
00:00:39,600 ⇒ 00:00:42,280
сказать, полустрактурированы. Например,
19
00:00:42,280 ⇒ 00:00:44,399
имейлы. Мы знаем, что это email. У него
20
00:00:44,399 ⇒ 00:00:48,120
есть методанные поводу того, кто это нам
21
00:00:48,120 ⇒ 00:00:50,719
отправил, какая тема. То же самое с
22
00:00:50,719 ⇒ 00:00:52,879
Телеграмом. Мы знаем, какой канал мы
23
00:00:52,879 ⇒ 00:00:55,320
берём и парсим. Но внутри непонятно, что
24
00:00:55,320 ⇒ 00:00:58,120
происходит. такая полуструктура есть. И
25
00:00:58,120 ⇒ 00:01:00,359
есть вот, как я изобразил, совершенно
26
00:01:00,359 ⇒ 00:01:02,559
неструктурированные данные, сайты,
27
00:01:02,559 ⇒ 00:01:05,320
которые могут быть устроены как угодно,
28
00:01:05,320 ⇒ 00:01:10,200
а разные PDF, э, и картинки аудио-видео,
29
00:01:10,200 ⇒ 00:01:12,520
все устроены не пойми как, с ними нужно
30
00:01:12,520 ⇒ 00:01:15,759
отдельно разбираться, и это целый такой
31
00:01:15,759 ⇒ 00:01:18,799
класс партинга. Тем не менее, все эти
32
00:01:18,799 ⇒ 00:01:20,799
данные, структурированы они или не
33
00:01:20,799 ⇒ 00:01:23,000
структурированы, также ещё и проходят
34
00:01:23,000 ⇒ 00:01:25,240
через фильтры.
35
00:01:25,240 ⇒ 00:01:27,720
старые добрые фильтры, которые можно
36
00:01:27,720 ⇒ 00:01:29,720
программно вызвать. Ну, код, код,
37
00:01:29,720 ⇒ 00:01:32,119
lлоукод - это
38
00:01:32,119 ⇒ 00:01:34,439
не суть. Штука в том, что они как бы
39
00:01:34,439 ⇒ 00:01:37,280
глупые, в кавычках. Они подчиняются
40
00:01:37,280 ⇒ 00:01:39,360
правилам логики, программирования,
41
00:01:39,360 ⇒ 00:01:41,759
каким-то условиям. Мы их можем
42
00:01:41,759 ⇒ 00:01:44,280
использовать, и они работают надёжно,
43
00:01:44,280 ⇒ 00:01:46,920
они хороши. Плюс мы можем задействовать
44
00:01:46,920 ⇒ 00:01:49,680
фильтр AI, который может либо
45
00:01:49,680 ⇒ 00:01:51,960
вытаскивать смыслы, либо фильтровать,
46
00:01:51,960 ⇒ 00:01:54,479
либо же загонять в нужный нам формат,
47
00:01:54,479 ⇒ 00:01:56,680
если на входе вот что-то вот вроде
48
00:01:56,680 ⇒ 00:01:59,799
такого. Вот такая вот схема карта. И
49
00:01:59,799 ⇒ 00:02:03,360
дальше я покажу, а примеры, да. Ну вот
50
00:02:03,360 ⇒ 00:02:05,520
если порассуждать, какие могут быть
51
00:02:05,520 ⇒ 00:02:08,800
примеры в суперструктурированных данных.
52
00:02:08,800 ⇒ 00:02:10,479
Это когда кто-то за нас уже их
53
00:02:10,479 ⇒ 00:02:12,920
подготовил. Например, какие банковские
54
00:02:12,920 ⇒ 00:02:16,280
выпуски, ммэли, джейсоны, календарь,
55
00:02:16,280 ⇒ 00:02:18,200
довольно структурированные данные
56
00:02:18,200 ⇒ 00:02:19,519
какие-нибудь,
57
00:02:19,519 ⇒ 00:02:21,720
показатели финансов,
58
00:02:21,720 ⇒ 00:02:25,160
а все таблички, которые у нас есть, всё
59
00:02:25,160 ⇒ 00:02:27,040
там уже структурировано.
60
00:02:27,040 ⇒ 00:02:29,680
Если говорить про данные, которые слегка
61
00:02:29,680 ⇒ 00:02:32,560
структурированы, да, это могут быть
62
00:02:32,560 ⇒ 00:02:36,200
какие-то новостные сайты, это могут быть
63
00:02:36,200 ⇒ 00:02:39,800
сообщения в мессенджерах, это могут быть
64
00:02:39,800 ⇒ 00:02:42,720
какие-то комментарии к структурированным
65
00:02:42,720 ⇒ 00:02:46,080
данным. Это могут быть, ну, не знаю,
66
00:02:46,080 ⇒ 00:02:49,319
субтитры на Ютубе, которые мы знаем, что
67
00:02:49,319 ⇒ 00:02:51,440
это субтитры, мы знаем метаданные про
68
00:02:51,440 ⇒ 00:02:54,680
эти данные, но что внутри, мы не знаем.
69
00:02:54,680 ⇒ 00:02:57,360
Ну и здесь, грубо говоря, всё остальное.
70
00:02:57,360 ⇒ 00:03:00,360
А здесь сайты, которые строятся как как
71
00:03:00,360 ⇒ 00:03:03,879
угодно. Здесь могут быть
72
00:03:03,879 ⇒ 00:03:05,920
рукописные тексты, тут могут быть
73
00:03:05,920 ⇒ 00:03:09,239
сканированные страницы, здесь могут быть
74
00:03:09,239 ⇒ 00:03:12,159
само аудио или видео, с которым нам
75
00:03:12,159 ⇒ 00:03:14,879
придётся разбираться. Ещё
76
00:03:14,879 ⇒ 00:03:18,799
давайте посмотрим несколько примеров, а,
77
00:03:18,799 ⇒ 00:03:22,239
которые относятся к вот к первой, второй
78
00:03:22,239 ⇒ 00:03:24,640
или третьей корзине. какие могут быть
79
00:03:24,640 ⇒ 00:03:28,080
подходы. И моя цель показать, что этих
80
00:03:28,080 ⇒ 00:03:30,159
инструментов много, они существуют и их
81
00:03:30,159 ⇒ 00:03:32,680
надо подбирать под задачу в зависимости
82
00:03:32,680 ⇒ 00:03:35,400
от того, какой у нас источник. Начну я с
83
00:03:35,400 ⇒ 00:03:39,319
такого сервиса сайта RSS App, который,
84
00:03:39,319 ⇒ 00:03:41,280
как они утверждают, может завернуть в
85
00:03:41,280 ⇒ 00:03:43,720
RSS структурированные данные. Это такой
86
00:03:43,720 ⇒ 00:03:46,920
XML, где есть и разметка, и контент. А
87
00:03:46,920 ⇒ 00:03:49,159
вот такие источники,
88
00:03:49,159 ⇒ 00:03:51,200
например, я могу взять Telegram-канал,
89
00:03:51,200 ⇒ 00:03:52,920
но он должен быть публичным, без всякой
90
00:03:52,920 ⇒ 00:03:56,560
хитрости, и получать из него, а
91
00:03:56,560 ⇒ 00:03:58,519
структурированные данные, которые по
92
00:03:58,519 ⇒ 00:04:00,680
таймерум дёргаются. Что у меня тут есть?
93
00:04:00,680 ⇒ 00:04:03,439
Какие фиды? Вот у меня есть поток на VC,
94
00:04:03,439 ⇒ 00:04:07,879
который берёт, а, берёт страницу и
95
00:04:07,879 ⇒ 00:04:11,560
выдаёт мне это RSS, эту эту RSS, которую
96
00:04:11,560 ⇒ 00:04:13,680
я могу использовать в автоматизации. Вот
97
00:04:13,680 ⇒ 00:04:17,519
сюда падает через RSS всё, что мне
98
00:04:17,519 ⇒ 00:04:21,040
нужно. RSS довольно старый формат, а он
99
00:04:21,040 ⇒ 00:04:23,160
хорошо стандартизирован и часто он всё
100
00:04:23,160 ⇒ 00:04:26,120
ещё используется. Например, покажу вот
101
00:04:26,120 ⇒ 00:04:29,199
многие новостные сайты отдают RS. А,
102
00:04:29,199 ⇒ 00:04:32,680
например, мы можем зайти там на архив и,
103
00:04:32,680 ⇒ 00:04:35,639
а, у них напрямую вот тут RSS, наверное,
104
00:04:35,639 ⇒ 00:04:37,600
нигде не написано, но можно загуглить и
105
00:04:37,600 ⇒ 00:04:39,680
поискать, что они вообще, есть ли у них
106
00:04:39,680 ⇒ 00:04:41,600
RSС, да? То есть взять какой-нибудь
107
00:04:41,600 ⇒ 00:04:44,560
сайт, э, в Гугле, поставить пробел и
108
00:04:44,560 ⇒ 00:04:47,919
поискать RSS, если у них RSS. Вот они
109
00:04:47,919 ⇒ 00:04:51,080
отдают, а, в таком-то формате, а, свои
110
00:04:51,080 ⇒ 00:04:54,360
данные и приводят пример, наприме, вот
111
00:04:54,360 ⇒ 00:04:57,000
пример их публикации. Это можно уже
112
00:04:57,000 ⇒ 00:04:58,400
парсить.
113
00:04:58,400 ⇒ 00:05:02,560
эти, а, эрсэски или вот эти данные, эти
114
00:05:02,560 ⇒ 00:05:04,520
ленты, которые отдают разные сайты, у
115
00:05:04,520 ⇒ 00:05:07,080
них есть стандарт, но никто их не
116
00:05:07,080 ⇒ 00:05:09,080
обязует выдавать, например, полный текст
117
00:05:09,080 ⇒ 00:05:11,800
статьи или добавлять туда картинки или
118
00:05:11,800 ⇒ 00:05:15,199
атачменты. Они могут это делать, но сами
119
00:05:15,199 ⇒ 00:05:18,360
рсэски, их контент устроен по-разному.
120
00:05:18,360 ⇒ 00:05:20,639
Или, например, вот есть сайт с какой-то
121
00:05:20,639 ⇒ 00:05:23,039
рассылкой, я загуглил, у этой рассылки
122
00:05:23,039 ⇒ 00:05:25,360
действительно естьсэска.
123
00:05:25,360 ⇒ 00:05:27,680
Здесь выдаётся в таком формате. Это не
124
00:05:27,680 ⇒ 00:05:29,800
запрещено. Такой unicкод. Русский язык
125
00:05:29,800 ⇒ 00:05:33,039
стал вот таким, но он тоже как бы парбл.
126
00:05:33,039 ⇒ 00:05:35,919
Его можно запарсить, когда мы будем
127
00:05:35,919 ⇒ 00:05:39,199
обращаться вот к этим элементам.
128
00:05:39,199 ⇒ 00:05:42,039
Это дерево. В общем, да, Jon и XML очень
129
00:05:42,039 ⇒ 00:05:44,479
похожи в этом смысле.
130
00:05:44,479 ⇒ 00:05:48,080
Это что касается РССов. Дальше мы можем
131
00:05:48,080 ⇒ 00:05:52,800
парсить email. Вот мейлы я могу. Ну, у
132
00:05:52,800 ⇒ 00:05:54,440
меня здесь сделан отдельный почтовый
133
00:05:54,440 ⇒ 00:05:57,120
ящик, который падает
134
00:05:57,120 ⇒ 00:05:59,440
рассылки по нужной мне теме. Я могу
135
00:05:59,440 ⇒ 00:06:03,479
заходить, читать папку inbox, а, удалять
136
00:06:03,479 ⇒ 00:06:06,680
письмо и работать с контентом, чтобы
137
00:06:06,680 ⇒ 00:06:08,960
отбирать новости по нужной мне теме. То
138
00:06:08,960 ⇒ 00:06:12,639
есть здесь у нас ЛМКА выполняет а
139
00:06:12,639 ⇒ 00:06:15,800
функцию фильтрации. И когда она
140
00:06:15,800 ⇒ 00:06:18,319
зафильтровывает новость, да, если
141
00:06:18,319 ⇒ 00:06:22,160
новостей нет, то это наоборот отрицание,
142
00:06:22,160 ⇒ 00:06:25,720
то, что новостей нет, мы, а, складываем
143
00:06:25,720 ⇒ 00:06:27,960
эту новость в табличку и дальше можем с
144
00:06:27,960 ⇒ 00:06:29,960
ней работать, этот источник данных
145
00:06:29,960 ⇒ 00:06:31,840
структурированных брать для другой
146
00:06:31,840 ⇒ 00:06:34,280
автоматизации.
147
00:06:34,280 ⇒ 00:06:36,720
Например, что касается всяких
148
00:06:36,720 ⇒ 00:06:38,880
документов, сканов и всего, насколько
149
00:06:38,880 ⇒ 00:06:42,199
мне известно, сейчас хорошо перфот
150
00:06:42,199 ⇒ 00:06:45,199
до сих пор перформат некая у Мистрали
151
00:06:45,199 ⇒ 00:06:48,319
есть своя модель OCR. Вот она так
152
00:06:48,319 ⇒ 00:06:52,440
называется. Сейчас поищем OCR.
153
00:06:52,440 ⇒ 00:06:55,319
А Mrль OCR, да, её можно по опишке
154
00:06:55,319 ⇒ 00:06:59,199
вызывать CR2505.
155
00:06:59,199 ⇒ 00:07:02,000
можно в неё скарбмбливать PDF и получать
156
00:07:02,000 ⇒ 00:07:03,879
полный текст документов на выходе. То
157
00:07:03,879 ⇒ 00:07:05,960
есть эта задача уже кем-то решается.
158
00:07:05,960 ⇒ 00:07:08,639
Решается довольно неплохо.
159
00:07:08,639 ⇒ 00:07:11,360
А ещё один пример - это парсинг
160
00:07:11,360 ⇒ 00:07:14,680
Телеграма. Для этого,
161
00:07:14,680 ⇒ 00:07:16,639
а, ну, тут со всеми инструментами, как
162
00:07:16,639 ⇒ 00:07:19,000
вы понимаете, нужно повозиться. Для
163
00:07:19,000 ⇒ 00:07:21,000
этого можно использовать такой модуль
164
00:07:21,000 ⇒ 00:07:22,919
или плагин к Нейтону, называется
165
00:07:22,919 ⇒ 00:07:25,440
Telepilot. Его можно установить только
166
00:07:25,440 ⇒ 00:07:28,560
на селф-хостинге, да, там, где у нас
167
00:07:28,560 ⇒ 00:07:31,199
собственный Nathan. И посмотрите, что он
168
00:07:31,199 ⇒ 00:07:33,160
умеет. Если я добавлю сюда модуль
169
00:07:33,160 ⇒ 00:07:35,879
Telepilot,
170
00:07:35,879 ⇒ 00:07:38,319
а он умеет
171
00:07:38,319 ⇒ 00:07:41,319
вызывать там буквально десятки функций,
172
00:07:41,319 ⇒ 00:07:44,560
часть из них ещё не показывается.
173
00:07:44,560 ⇒ 00:07:46,560
Их можно поискать поиском. Но тут тоже
174
00:07:46,560 ⇒ 00:07:48,840
надо заморочиться. Лепайт - это такой
175
00:07:48,840 ⇒ 00:07:51,360
клиент к телеграму, который может делать
176
00:07:51,360 ⇒ 00:07:54,080
всё, что мы делаем руками.
177
00:07:54,080 ⇒ 00:07:55,800
присоединяться к чатам, парти все
178
00:07:55,800 ⇒ 00:07:58,199
сообщения, давать ответы и так далее.
179
00:07:58,199 ⇒ 00:08:00,680
Очень-очень много функций. Для этого
180
00:08:00,680 ⇒ 00:08:03,159
нужно по-хорошему,
181
00:08:03,159 ⇒ 00:08:04,879
лучше не ходить под собой, под настоящим
182
00:08:04,879 ⇒ 00:08:07,000
аккаунтом, завести ещё один аккаунт
183
00:08:07,000 ⇒ 00:08:09,080
настоящий, зарегистрировать приложение
184
00:08:09,080 ⇒ 00:08:12,479
внутри Телеграма и ходить по чатам,
185
00:08:12,479 ⇒ 00:08:14,560
собирать информацию.
186
00:08:14,560 ⇒ 00:08:17,240
И последнее, наверное, что я покажу -
187
00:08:17,240 ⇒ 00:08:21,960
это APIF. Это такая прослойка
188
00:08:21,960 ⇒ 00:08:25,120
между прослойка для нашей автоматизации.
189
00:08:25,120 ⇒ 00:08:27,800
Например, для Ютуба здесь готовы так
190
00:08:27,800 ⇒ 00:08:31,120
называемые скрейперы. Зачем они нужны и
191
00:08:31,120 ⇒ 00:08:33,360
почему я этим пользуюсь? Потому что,
192
00:08:33,360 ⇒ 00:08:36,680
вообще говоря, а-а сайты, которые
193
00:08:36,680 ⇒ 00:08:39,880
размещают информацию, далеко не все рады
194
00:08:39,880 ⇒ 00:08:42,719
тому, что их атакуют роботы и пытаются
195
00:08:42,719 ⇒ 00:08:46,240
из них тащить информацию, а на баннеры
196
00:08:46,240 ⇒ 00:08:49,200
их не смотрят и денег им не дают.
197
00:08:49,200 ⇒ 00:08:51,920
Поэтому нужно как-то выкручиваться. И
198
00:08:51,920 ⇒ 00:08:54,959
часть головной боли, вот разные такие
199
00:08:54,959 ⇒ 00:08:58,600
готовые мини-апы, которые публикуются на
200
00:08:58,600 ⇒ 00:09:00,640
Афае, снимают.
201
00:09:00,640 ⇒ 00:09:02,519
А, например, да, вот здесь у меня
202
00:09:02,519 ⇒ 00:09:05,519
YouTube, можно запарсить Instagram.
203
00:09:05,519 ⇒ 00:09:07,120
Давайте посмотрим, что у нас по
204
00:09:07,120 ⇒ 00:09:10,440
Инстаграму. Тоже будет куча разных парк.
205
00:09:10,440 ⇒ 00:09:12,200
Их надо пробовать. Можно ориентироваться
206
00:09:12,200 ⇒ 00:09:13,680
на число звёздочки или число
207
00:09:13,680 ⇒ 00:09:15,200
пользователей.
208
00:09:15,200 ⇒ 00:09:17,839
Они стоят небольших денег, каждый такой
209
00:09:17,839 ⇒ 00:09:20,120
запрос, но они снимают, правда, кучу
210
00:09:20,120 ⇒ 00:09:23,600
головной боли. А можно ещё, а, я
211
00:09:23,600 ⇒ 00:09:27,360
вспомнил, есть Scrap Scrap Ninja,
212
00:09:27,360 ⇒ 00:09:30,560
отдельный сервис, который у него есть
213
00:09:30,560 ⇒ 00:09:32,839
N8N интеграция,
214
00:09:32,839 ⇒ 00:09:36,920
который тоже позволяет скрепить, а сайты
215
00:09:36,920 ⇒ 00:09:40,120
и использовать там даже прокси, потому
216
00:09:40,120 ⇒ 00:09:43,680
что а сайты не любят, когда куча кучу
217
00:09:43,680 ⇒ 00:09:47,120
запросов ээ им отправляют из одного и
218
00:09:47,120 ⇒ 00:09:50,079
того же места. Ну и если говорить ещё
219
00:09:50,079 ⇒ 00:09:53,560
про Websrapping, то Firecoll,
220
00:09:53,560 ⇒ 00:09:56,680
конечно, это тоже суперсервис, тоже
221
00:09:56,680 ⇒ 00:10:00,120
платный, а который позволяет, а вот их
222
00:10:00,120 ⇒ 00:10:02,360
слоган превратить вот в сайт LM Ready
223
00:10:02,360 ⇒ 00:10:05,360
Data. Если мы возьмём, например, найдём
224
00:10:05,360 ⇒ 00:10:07,320
тут демоo,
225
00:10:07,320 ⇒ 00:10:11,519
тут есть отличное демоground.
226
00:10:11,959 ⇒ 00:10:14,399
И возьмём какой-нибудь сайт. Давайте
227
00:10:14,399 ⇒ 00:10:15,959
вот, может быть, даже из тех, что я
228
00:10:15,959 ⇒ 00:10:22,120
открывал. Вот OCR возьмём и заскрепим в
229
00:10:22,120 ⇒ 00:10:23,959
Mark.
230
00:10:23,959 ⇒ 00:10:28,640
Mark. Аа, может быть, даже сари сделаем.
231
00:10:28,640 ⇒ 00:10:30,800
Вот так.
232
00:10:30,800 ⇒ 00:10:31,880
Сейчас
233
00:10:31,880 ⇒ 00:10:34,839
их робот пойдёт на этот сайт, посмотрит,
234
00:10:34,839 ⇒ 00:10:36,959
как он устроен, отбросит всякие лишние
235
00:10:36,959 ⇒ 00:10:39,680
HTML, попробует выделить заголовки под
236
00:10:39,680 ⇒ 00:10:42,680
заголовки, да, попытается справиться.
237
00:10:42,680 ⇒ 00:10:44,440
Ну, мне говорят, что нужно
238
00:10:44,440 ⇒ 00:10:46,279
засайнапиться. Я сейчас не хочу этого
239
00:10:46,279 ⇒ 00:10:48,920
делать. Тем не менее, мы добыли аа
240
00:10:48,920 ⇒ 00:10:52,079
контент этого сайта, а, и можем
241
00:10:52,079 ⇒ 00:10:57,000
использовать этрс в нашей автоматизации.
242
00:10:57,000 ⇒ 00:11:00,120
Такие вот подходы к этой карте, а,
243
00:11:00,120 ⇒ 00:11:01,399
структурированные, слабо
244
00:11:01,399 ⇒ 00:11:02,760
структурированные или вообще не
245
00:11:02,760 ⇒ 00:11:06,120
структурированные. И, собственно,
246
00:11:06,120 ⇒ 00:11:08,760
этот источник данных, по большому счёту,
247
00:11:08,760 ⇒ 00:11:11,920
и определяет логику наших действий.
248
00:11:11,920 ⇒ 00:11:13,760
Используем ли мы готовые решения?
249
00:11:13,760 ⇒ 00:11:15,839
Используем ли мы сильно
250
00:11:15,839 ⇒ 00:11:17,880
детерминированные решения, когда данные
251
00:11:17,880 ⇒ 00:11:21,200
уже структурированы, либо мы начинаем
252
00:11:21,200 ⇒ 00:11:24,440
промтить эти данные через AI, просить,
253
00:11:24,440 ⇒ 00:11:26,720
например, перегнать это в нужный формат,
254
00:11:26,720 ⇒ 00:11:28,839
зафильтровать, отформатировать и так
255
00:11:28,839 ⇒ 00:11:33,279
далее. Вот такой подход. M.