Отследить изменения на сайте и распарсить страницу - Visual Basic .NET
Формулировка задачи:
Здраствуйте!
Пытаюсь сделать клиент для одного сайта. Завис практически сразу. Умом понимаю, что нужно отпарсить или написать регулярку, но как даже не знаю.
Имеется строка в html-коде этого сайта: "<a href="/index.php?section=dialogs">Мои сообщения</a> == $0"
Как отследить программно, что пришло новое сообщение.
Если возможно ответ с кодом. Буду премного благодарен)
Решение задачи: «Отследить изменения на сайте и распарсить страницу»
textual
Листинг программы
Imports System.IO
Imports System.Text
Public Class Form1
Dim documentCompleted As Boolean = False
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
documentCompleted = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox2.Clear()
WebBrowser1.Navigate("http://www.fanfics.me/autent.php")
Timer1.Enabled = True
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
WebBrowser1.ScriptErrorsSuppressed = True
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If documentCompleted = True Then
WebBrowser1.Document.GetElementById("name").InnerText = "login"
WebBrowser1.Document.GetElementById("pass").InnerText = "password"
WebBrowser1.Document.GetElementById("enter_submit").InvokeMember("click")
documentCompleted = False
Timer1.Enabled = False
Timer2.Enabled = True
Else
Exit Sub
End If
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
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
If documentCompleted = True Then
Dim sr As StreamReader = New StreamReader(Me.WebBrowser1.DocumentStream, Encoding.GetEncoding("windows-1251"))
TextBox1.Text = sr.ReadToEnd()
TextBox2.Text = Pars(TextBox1.Text, "<a href=""/index.php?section=dialogs"">", "</a>")
Timer2.Enabled = False
End If
End Sub
End Class