Как ускорить парсинг html? - Visual Basic .NET

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

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

Всем привет. Столкнулся с такой проблемой, что парсинг html текста идет очень долго. Посмотрите пожалуйста, как можно оптимизировать код по скорости?
Листинг программы
  1. On Error Resume Next
  2. Dim int As Integer
  3. Dim fintext As String
  4. int = 0
  5. Dim html_text As String = WebBrowser1.Document.Body.InnerHtml
  6. Dim toggle As String
  7. Dim bool As Boolean
  8. Dim words As String() = html_text.Split("<SPAN")
  9. Dim strchar As Char
  10. For Each lines As String In words
  11. If bool = True Then
  12. If int < 5 Then
  13. bool = False
  14. End If
  15. GoTo plus
  16. End If
  17. strchar = lines(14)
  18. If strchar = "4" Or strchar = "5" Then
  19. plus:
  20. int = int + 1
  21. toggle = toggle + lines
  22. If int > 4 Then
  23. 'парсинг
  24. toggle = toggle + vbNewLine
  25. toggle = toggle.Replace("/SPAN>", "")
  26. toggle = toggle.Replace("SPAN class=Xb>", "")
  27. toggle = toggle.Replace("SPAN Class=Xc4>", "")
  28. toggle = toggle.Replace("SPAN class=Xc15>", "")
  29. toggle = toggle.Replace("SPAN class=", "")
  30. toggle = toggle.Replace("SPAN", "")
  31. toggle = toggle.Replace("Xc4", "")
  32. toggle = toggle.Replace("Xc0 Xb", "")
  33. toggle = toggle.Replace("<", "")
  34. toggle = toggle.Replace(">", "")
  35. Dim linez As String() = toggle.Split(vbNewLine)
  36. For Each linn As String In linez
  37. fintext = linn
  38. System.IO.File.WriteAllText("everyline.txt", fintext)
  39. Dim hash2 As HashSet(Of String) = New HashSet(Of String)
  40. Dim file2 As String() = IO.File.ReadAllLines("everyline.txt")
  41. For Each item2 As String In file2
  42. If item2.StartsWith(4) Then
  43. hash2.Add(item2)
  44. ElseIf item2.StartsWith(5)
  45. hash2.Add(item2)
  46. ElseIf item2.StartsWith(3)
  47. hash2.Add(item2)
  48. ElseIf linn.Contains("APP")
  49. hash2.Add(item2)
  50. ElseIf linn.Contains("$")
  51. hash2.Add(item2)
  52. End If
  53. Next
  54. IO.File.WriteAllLines("filtered.txt", hash2.ToList())
  55. Next
  56.  
  57. End If
  58. bool = True
  59. End If
  60. Next

Решение задачи: «Как ускорить парсинг html?»

textual
Листинг программы
  1. For Each item2 As String In file2
  2.     If item2.Contains("nks") Then
  3.         Select Case item2(0)
  4.             Case "3","4","5"
  5.                 hash2.Add(item2)
  6.         End Select
  7.     End If
  8. Next

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


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

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

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

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

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

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