Описание: Парсинг HTML страниц в IDE Basic4android с помощью библиотеки jSoup
Название:jSoup для Basic4android Автор: я (c1cl0n) Формат: mp4 Разрешение: 1920x1080 Продолжительность: 21 мин. Качество (битрейт): 10 Mbit/AVC/16:9/60fps/MP4(H264) Страна: Россия
Видео показывает как парсить HTML страницы любых сайтов с помощью парсера jSoup в среде разработки ПО для ОС Android - Basic4android (B4A). Написал маленький модуль для упрощения парсинга - разбитие селекторов на блоки, выдергивание из блоков текста, атрибутов (как всех имеющихся, так каждого по-именно) Задача - быстро и просто получить от странички то, что нужно Вашему проекту. Т.к. я сейчас пишу реализацию апи Dimonvideo.ru для B4A, то столкнулся с потребностью быстрого парсинга нужной инфы. Вот делюсь со всеми как это сделать на примере сайта Dimonvideo.ru
Sub Process_Globals Private js As jSoup Private source As String Private pattern As String Private fragmentsList As List End Sub Public Sub Parse(selector As String) If source = "" Then source = js.parse_HTML("") If selector = "" Then selector = "*" pattern = selector fragmentsList = js.selector(source, selector) End Sub Public Sub LoadHtml(Html As String) As String source = js.parse_HTML(Html) Return source End Sub Public Sub GetHtml(index As Int) As String If index < 0 Or fragmentsList.Size = 0 Then Return source If index > fragmentsList.Size - 1 Then index = fragmentsList.Size - 1 Return fragmentsList.Get(index) End Sub Public Sub HtmlCount() As Int Return fragmentsList.Size End Sub Public Sub GetText(html As String, tag As String) As String Dim text As List = js.selectorElementText(html, tag) If text.Size > 0 Then Return text.Get(0) Else Return "" End Sub Public Sub GetAttr(html As String, tag As String, name As String) As String Dim attr As List = js.selectorElementAttr(html, tag, name) If attr.Size > 0 Then Return attr.Get(0) Else Return "" End Sub Public Sub GetAtts(html As String) As List Dim Matcher As Matcher = Regex.Matcher($"(\S+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?"$, html) Dim Attribs As List Attribs.Initialize Do While Matcher.Find Attribs.Add(Matcher.Match) Loop Return Attribs End Sub