Отследить изменения на сайте и распарсить страницу - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы