Парсинг, HtmlAgilityPack - C#

Узнай цену своей работы

Формулировка задачи:

В общем давно хотел затронуть тему парсинга, сейчас появился повод... В общем полазил я по инету и увидел что многие советуют "HtmlAgilityPack", зашел, скачал, посмотрел пример, и немного был в не понятках, так как пример всего 1:
Листинг программы
  1. HtmlDocument doc = new HtmlDocument();
  2. doc.Load("file.htm");
  3. foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
  4. {
  5. HtmlAttribute att = link["href"];
  6. att.Value = FixLink(att);
  7. }
  8. doc.Save("file.htm");
Короче разобраться сам не смог... Объясните как работает парсер?

Решение задачи: «Парсинг, HtmlAgilityPack»

textual
Листинг программы
  1.     Public Sub rer3()
  2.         Dim Request As System.Net.HttpWebRequest
  3.         Dim Response As System.Net.HttpWebResponse
  4.         Dim MyStreamReader As System.IO.StreamReader
  5.         Dim Content As String
  6.         Request = System.Net.HttpWebRequest.Create("") 'тут урл
  7.  
  8.         Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10"
  9.  
  10.  
  11.         Response = Request.GetResponse()
  12.  
  13.  
  14.         MyStreamReader = New System.IO.StreamReader(Response.GetResponseStream(), System.Text.Encoding.GetEncoding(1251))
  15.         Content = MyStreamReader.ReadToEnd()
  16.         MyStreamReader.Close()
  17.  
  18.  
  19.         Dim doc As mshtml.IHTMLDocument2 = New mshtml.HTMLDocument
  20.         doc.clear()
  21.         doc.write(Content)
  22.         doc.close()
  23.  
  24.         Dim div As mshtml.HTMLDivElement
  25.         div = doc.GetElementById("mycontent")
  26.         If Not div Is Nothing Then
  27.             Dim tbl As mshtml.HTMLTable
  28.             tbl = div.getElementsByTagName("table").item(0)
  29.             If Not tbl Is Nothing Then
  30.  
  31.                 For Each tr As mshtml.HTMLTableRow In tbl.rows
  32.                     If tr.className Is Nothing Then Continue For
  33.                     If tr.className.Contains("tabletext") = True Then
  34.                         Debug.Print(tr.innerText)
  35.                     End If
  36.                 Next
  37.             End If
  38.  
  39.  
  40.         End If
  41.  
  42.     End Sub

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


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

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

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут