Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 13

Как распарсить строку с HTML-страницы

06.09.2012, 13:07. Показов 2321. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчанены =)

Подскажите, нужно из строки html файла, примерного вида
HTML5
1
<area href="http://site.com/p2" coor="190,88,28" alt="Уровень 1"><area href="http://site.com/p2" coords="280,89,28" alt="Уровень 2">
извлечь в отдельные textbox - ссылки сайтов, значение coor в кавычках, и текст с уровнем, притом только цифру уровня.. В итоге должно быть в одном textbox - две ссылки, в другом - значение coor, и в третьем цифры уровней.. Может знает кто, как нужно сделать, интересует само извлечение из строки этих данных, а не открытие файла и другие операции.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.09.2012, 13:07
Ответы с готовыми решениями:

Как получить код HTML страницы?
КАК получить код HTML страницы в переменную, неиспользую OCX'ов Ну всмысле без Winsock msInet итп...

Как узнать HTML код загруженной в WebBrowser Control страницы??
Как узнать HTML код загруженной в WebBrowser Control страницы?? За ранее СПАСИБО!

Как и чем распарсить код Html-страницы
Доброе время суток! Вот допустим, в html документе есть слово Транспорт, после которого идет такая строка &lt;span...

10
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
06.09.2012, 13:36
Т.е. есть строка приведенного вида. Нужно достать из нее значения?

Достать значение coords (и других пар-ров) можно так:

Visual Basic
1
2
3
    k1%=Instr(BigStr$,"coords=")
    k2%=Instr((k1%+7),BigStr$,Chr$(34))
    Coords$=mid$(BigStr$,k1%+7,k2%-k1%-8)
1
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 13
06.09.2012, 14:32  [ТС]
Да. Только подскажите еще, как достать еще и следующие значения, например coords? Реализовать с помощью цикла?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
06.09.2012, 14:52
В общем, без повторения не обойтись. Можно для простоты "отрезать" обработанную часть строки.
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 13
06.09.2012, 14:54  [ТС]
Спасибо. Буду пробовать =)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
06.09.2012, 15:05
Вот работающая процедура:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::::::     Извлечь из списка значение по ключевому слову   :::::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Public Sub GetList(Stri$, Kw$, Res$) 
'Stri - исх. строка; Kw - ключевое слово; Res-результат
      Res$ = ""
      LstOrg$ = Stri$
      Lst$ = LCase$(LstOrg$)
      KeyWord$ = Kw$ + "="
      l% = Len(KeyWord$)
      Beg% = 1
      Do
         j% = InStr(Beg%, Lst$, KeyWord$)
         If (j% = 0) Then Exit Sub                ' Ключевого слова нет
                                                           ' или оно в конце строки
         If ((j% + l%) = Len(Lst$)) Or _
            (Mid$(Lst$, (l% + j%), 1) = ")") Or _
            (Mid$(Lst$, (l% + j%), 1) = "]") Or _
            (Mid$(Lst$, (l% + j%), 1) = "}") Or _
            (Mid$(Lst$, (l% + j%), 1) = ",") Then
            Exit Sub
         End If
         If (j% > 1) Then                          ' Если слово не в начале строки
                                                         ' и перед ним нет запятой - дальше
            If (Mid$(Lst$, (j% - 1), 1) <> ",") Then
               Incr Beg%
            Else
               Exit Do
            End If
         Else
            Exit Do
         End If
      Loop
      Select Case (Mid$(Lst$, (l% + j%), 1))
             Case ("(")
                  del$ = ")"
             Case ("[")
                  del$ = "]"
             Case ("{")
                  del$ = "}"
             Case Else
                  del$ = ","
      End Select
      For i% = (l% + j%) To Len(Lst$)
          s1$ = Mid$(LstOrg$, i%, 1)
          Res$ = Res$ + s1$
          If s1$ = del$ Then Exit For
      Next i%
      If Right$(Res$, 1) = "," Then Res$ = Left$(Res$, Len(Res$) - 1)
End Sub
1
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 13
06.09.2012, 15:13  [ТС]
Спасибо =)
0
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
06.09.2012, 15:25
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
Dim s$, a, aa, i%, j%
AutoRedraw = True
a = Array("<area href=""", "coor=""", "alt=""")
s = "<area href=""http://site.com/p2"" coor=""190,88,28"" alt=""Уровень 1""><area href=""http://site.com/p2"" coor=""280,89,28"" alt=""Уровень 2"">"
For i = 0 To UBound(a)
  aa = Split(s, a(i))
  For j = 1 To UBound(aa)
    Print Split(aa(j), """")(0)
  Next j
Next i
End Sub
Добавлено через 1 минуту
Цитата Сообщение от flight Посмотреть сообщение
<area href="http://site.com/p2" coor="190,88,28" alt="Уровень 1"><area href="http://site.com/p2" coords="280,89,28" alt="Уровень 2">
Вручную набивал?
1
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 13
06.09.2012, 15:30  [ТС]
Да вручную, примерное содержание оригинала Да и ваш пример очень помог в решении вопроса. Спасибо =)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.09.2012, 23:53
Цитата Сообщение от Catstail Посмотреть сообщение
Visual Basic
27
Incr Beg%
?????
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
08.09.2012, 01:18
Ай! Забыл:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::::::                     Увеличение                     :::::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Public Sub Incr(a As Variant, Optional b As Variant = 1)
       a = a + b
End Sub
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::::::                     Уменьшение                     :::::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Public Sub Decr(a As Variant, Optional b As Variant = 1)
       a = a - b
End Sub
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::::::                           Обмен                       :::::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Public Sub Swap(a As Variant, b As Variant)
Dim c As Variant
       c = a
       a = b
       b = c
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2012, 01:18
Помогаю со студенческими работами здесь

Распарсить html-строку и узнать, какой текст и как был отформатирован
Вообщем имеется строка такого типа &quot;new text&lt;b&gt;text b&lt;/b&gt;&lt;i&gt;text i&lt;b&gt;text b i &lt;/b&gt;&lt;/i&gt;&quot; Нужно достать обычный текст, жирный текст и...

помогите распарсить HTML строку
Здравствуйте. Подскажите какое подобрать регулярное выражение чтобы распарсить вот такие строчки &lt;tr class=&quot;G1&quot;...

Распарсить строку HTML-кода
Всем привет. Посоветуйте как выйти из данной ситуации. Нужно вырезать ВСЁ из этого текста, &lt;div...

Как распарсить HTML
Здравствуйте. Сразу к делу. У меня есть код странички html, полученный ранее. А в нем куча ненужного мне текста и md5 хэш, который каждый...

Как распарсить HTML-страницу
Пытаюсь спарсить содержимое href Облазил кучу сайтов, перепробовал кучу вариантов... не работает Собственно нужно.... загрузить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru