05-11-25, 12:10 AM
سبحان الله عملت مثال مصغر لكي تتضح الاشكالية لكن لا ادري هل عرفت الحل ام لا
المثال مرفق اختبار رابط واحد وهو يخص عدد النودز في الصفحة و آخر مشاركة المشارك لا يساوي من قبله من حيث عنوان الوصول الى خاصية الـInnertext لاسمه.
فلا ادري هل ستقع اخطاء ان انا نقلته الى المشروع الرئيسي
و من لا يود تحميل المثال البسيط التالي الكلاس كامل:
كود :
Imports System.Threading
Public Class Form1
Dim th As Thread
Dim doc As New HtmlAgilityPack.HtmlDocument
Sub get_nods(url As String)
Dim html As String = IO.File.ReadAllText(url)
doc.LoadHtml(html)
Dim posts As HtmlAgilityPack.HtmlNodeCollection = doc.DocumentNode.SelectNodes("//div[@class='post classic ']")
Dim post As HtmlAgilityPack.HtmlNode = Nothing
Dim userinfo As HtmlAgilityPack.HtmlNode = Nothing
Dim attachs As HtmlAgilityPack.HtmlNodeCollection = Nothing
Dim x As Integer
ProgressBar1.Invoke(Sub() ProgressBar1.Maximum = posts.Count - 1)
For x = 0 To posts.Count - 1
Label1.Invoke(Sub() Label1.Text = "")
Label2.Invoke(Sub() Label2.Text = "")
Label3.Invoke(Sub() Label3.Text = "")
ProgressBar1.Invoke(Sub() ProgressBar1.Value = x)
userinfo = posts(x).SelectNodes("//div[@class='author_information']")(x)
post = posts(x).SelectNodes("//div[@class='post_body scaleimages']")(x)
If Not IsNothing(posts(x).SelectNodes("//fieldset//a[@class='attachembed']")) Then
attachs = posts(x).SelectNodes("//fieldset//a[@class='attachembed']")
End If
Label1.Invoke(Sub() Label1.Text = "Main_Post: " & vbNewLine & userinfo.InnerText)
Label2.Invoke(Sub() Label2.Text = "Main_Post: " & vbNewLine & post.InnerText)
If Not IsNothing(attachs) Then
Label3.Invoke(Sub() Label3.Text = "Main_Post: " & vbNewLine & "Attachs Count: " & attachs.Count)
Else
Label3.Invoke(Sub() Label3.Text = "Main_Post: " & vbNewLine & "Attachs Count: 0")
End If
Thread.Sleep(2500)
Next
Button1.Invoke(Sub() Button1.Enabled = True)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim url As String = "E:/vb4arb/thread-10000.html"
th = New Thread(AddressOf get_nods)
Button1.Enabled = False
Label1.Text = "بدأ"
th.Start(url)
End Sub
End Classالكود الاول اللذي استخدمه للوصول لاسم العضو او المستخدم:
كود :
"//div[@class='post_author scaleimages']//div[2]//a"فهل الكود الجديد في هذه المشاركة هو الافضل ام لا؟
على كل حال ساجرب باذن الله
انا احتاج وقت طويل لكي اعرف الخطأ.
اسف على الاطالة
حفظكم الله تعالى
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير

