Мар 10, 2012 -
Уроки Visual Basic.NET
7 комментариев


Функция парсинга данных по тегам
Добрый день.
Сегодня рассмотрим функцию для
Функция не сложная, но для начинающих может показаться сложной.
Разберем пример на моем блоге.
Попробуем вытащить текст заголовка (знаю, что можно с помощью класса
Imports System.Net Imports System.IO Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim WC As New WebClient ' Объявляем новый класс WebClient для обмена данными с ресурсом, заданным URI Dim HtmlText As String, Result As String HtmlText = WC.DownloadString(New Uri("https://ds-release.ru")) 'Загружаем блог, как строку, то есть получаем html код главной страницы блога. WC.Dispose() Result = Pars(HtmlText, ("<title>"), ("</title>")) 'Строка с html кодом главной страницы блога, первый открывающий тег, второй закрывающий тег MsgBox(Result) 'Результат End Sub ' Функция для парсинга. Советую просмотреть шаг за шагом и посмотреть на выполнение. Public Function Pars(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String) As String Dim iPos As Integer, iEnd As Integer Dim strResult As String iPos = strSource.IndexOf(strStart, 0) iEnd = strSource.IndexOf(strEnd, iPos + strStart.Length) If iPos <> -1 AndAlso iEnd <> -1 Then strResult = strSource.Substring(iPos + strStart.Length, iEnd - (iPos + strStart.Length)) End If Return strResult End Function
Результат будет - "Уроки Visual Basic.NET"
Тоже самое вы можете проделать и с другими сайтами и тегами, только скажу, что не всегда так легко можно вытянуть текст заключенный в теги.
Экспериментируйте, а если что-нибудь не получается или не понятно, то жду ваши вопросы в комментарии.
Похожие записи:




Заголовок вытаскивать легко.
Лучше покажите, как вытащить несколько анкоров, чтоб перечисление анкоров было через запятую, они будут для одного URL.
На форуме не удалось решить проблему?
Удалось на 80% поскольку криво делают страницы вебмастера.
Может быть Вы свой вариант предложите?
Ссылку в студию. Посмотрю, как времечко будет.
А как выдернуть "10 марта" отсюда: "/search?c[section]=people&c[bday]=10&c[bmonth]=3"
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Result As String
Dim url As String = "/search?c[section]=people&c[bday]=10&c[bmonth]=3"
Dim m As Integer
Result = Pars(url, ("[bday]="), ("&c"))
m = Val(url.Last)
MsgBox(Result & " " & MonthName(m)) 'Результат
End Sub
Public Function Pars(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String) As String
Dim iPos As Integer, iEnd As Integer
Dim strResult As String
iPos = strSource.IndexOf(strStart, 0)
iEnd = strSource.IndexOf(strEnd, iPos + strStart.Length)
If iPos -1 AndAlso iEnd -1 Then
strResult = strSource.Substring(iPos + strStart.Length, iEnd - (iPos + strStart.Length))
End If
Return strResult
End Function
End Class
Не подскажите как фиксировать любое вхождение по маске?
Задача: вытащить из кода все данные в теге ****