لا أتعامل مع المكتبة HtmlAgilityPack تعاملي فقط مع Regex
لتجربة الكود
أنشئ مشروع جديد وأضف DataGridView وButton
سيظهر في عنوان الفورم عداد للصفحات التي قيد القراءة
وبعد الإنتهاء، قم بالنقر على أي سطر لفتح الموضوع في المتصفح الإفتراضي لديك
تمنياتي للجميع بالتوفيق
لتجربة الكود
أنشئ مشروع جديد وأضف DataGridView وButton
سيظهر في عنوان الفورم عداد للصفحات التي قيد القراءة
وبعد الإنتهاء، قم بالنقر على أي سطر لفتح الموضوع في المتصفح الإفتراضي لديك
كود :
Imports System.Net
Imports System.Text
Imports System.Text.RegularExpressions
Public Class Form1
Dim data As New List(Of row)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim url As String = "https://www.alukah.net/fatawa_counsels/3002/"
Dim wc As New WebClient
wc.Headers.Add("user-agent", "Mozilla/5.0")
wc.Encoding = Encoding.UTF8
Dim html As String = wc.DownloadString(url)
Dim totalpages As Integer = Val(Regex.Match(html, "(?<=Title=""\d+""\>)\d+?(?=</a>\n)").Value)
For i = 1 To totalpages
wc = New WebClient
wc.Headers.Add("user-agent", "Mozilla/5.0")
wc.Encoding = Encoding.UTF8
html = wc.DownloadString(url & "Page/" & i & "/")
Me.Text = i & " / " & totalpages
Dim m As MatchCollection = Regex.Matches(html, "<tr\sclass=""table-[row|alt].+?title=""(.+?)"".+?href=""(.+?)"".+?<td>(.+?)</td>.+?</tr>", RegexOptions.Singleline)
For Each a As Match In m
Dim r As New row
r.Index = data.Count + 1
r.Title = a.Groups(1).Value.ToString.Trim
r.Auth = a.Groups(3).Value.ToString.Trim
r.Link = "https://www.alukah.net/" & a.Groups(2).Value.ToString.Trim
data.Add(r)
Next
Next
Me.DataGridView1.DataSource = data
End Sub
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
Process.Start(Me.DataGridView1.CurrentRow.Cells(3).Value)
End Sub
End Class
Class row
Property Index As Integer 'مجرد ظهر ترقيم للأسطر
Property Title As String
Property Auth As String
Property Link As String
End Classتمنياتي للجميع بالتوفيق

