تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
خطأ بسيط لا اعلم مغزاه
#1
كود :
Dim url As String = "https://www.alukah.net/fatawa_counsels/3002/"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)
       Dim doc As New HtmlAgilityPack.HtmlDocument
       doc.LoadHtml(html)
       For Each n As HtmlAgilityPack.HtmlNode In doc.DocumentNode.SelectNodes("//table[@class='table']/tr[1]/td[1]/a/id")
           dataGridView1.Rows.Add(n.Attributes("href").Value.ToString(), n.InnerText.Trim)
           Me.Text = dataGridView1.RowCount
       Next
يحدث ايرو من url ولا اعلم لماذا
الرد
تم الشكر بواسطة:
#2
أضف user-agent
كود :
Dim wc As New WebClient
wc.Headers.Add("user-agent", "Mozilla/5.0")

تمنياتي للجميع بالتوفيق
الرد
تم الشكر بواسطة:
#3
(03-12-18, 12:48 AM)rmnr كتب : أضف user-agent
كود :
Dim wc As New WebClient
wc.Headers.Add("user-agent", "Mozilla/5.0")

تمنياتي للجميع بالتوفيق

أيضا يظهر خطأ اخى لكن هذه المرة فى الكود 

الرد
تم الشكر بواسطة:
#4
لا أتعامل مع المكتبة HtmlAgilityPack تعاملي فقط مع Regex

لتجربة الكود
أنشئ مشروع جديد وأضف 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

تمنياتي للجميع بالتوفيق
الرد
تم الشكر بواسطة: ابو روضة
#5
(03-12-18, 02:11 AM)rmnr كتب : لا أتعامل مع المكتبة HtmlAgilityPack تعاملي فقط مع Regex

لتجربة الكود
أنشئ مشروع جديد وأضف 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(2).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

تمنياتي للجميع بالتوفيق

الله يكرمك أخى ماشاء الله عليك مميز ودماغك حلوة...
وللعلم الكود بطئ بعض الشيئ وحينما يجلب الاسماء لا يفتح الروابط لكن كتر ألف خيرك والله
دائما تعبك معايا...
الرد
تم الشكر بواسطة:
#6
اعتذر تم التحديث، (تم تغيير رقم Cells من 2 إلى 3 في حدث النقر على السطر)

البطئ يكون بسبب سرعة النت

جزاك الله خير
الرد
تم الشكر بواسطة:
#7
(03-12-18, 02:25 AM)rmnr كتب : اعتذر تم التحديث، (تم تغيير رقم Cells من 2 إلى 3 في حدث النقر على السطر)

البطئ يكون بسبب سرعة النت

جزاك الله خير
جزاك الله خيرا أخى ولا يهمك يا استاذى.....
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [كود] احتاج كود بسيط لتشفير ملف exe dametucorazon 6 232 30-01-19, 11:14 AM
آخر رد: dametucorazon
  [سؤال] طلب شروحات او دروس تعليمية لتصميم مشروع بسيط جدا للمبتدئين hyboss 1 88 21-01-19, 03:31 PM
آخر رد: elgokr
  [VB.NET] تعديل بسيط في كود بحث trakktour 5 192 19-12-18, 12:53 AM
آخر رد: elgokr
  [VB.NET] تعديل بسيط في الكود :) مجهول 5 231 17-12-18, 08:18 PM
آخر رد: elgokr
  [مشروع] طلب بسيط اسامه الهرماوي 1 148 27-11-18, 12:03 AM
آخر رد: elgokr
  محتاج مساعدة فى تعديل كود بسيط Mohamed Magdy 5 184 17-11-18, 04:30 AM
آخر رد: elgokr
  حذف جزء بسيط من النص ابو روضة 4 251 29-10-18, 05:30 PM
آخر رد: ابو روضة
  سؤال بسيط عن احد خدمات جوجل salahmax12 0 126 29-10-18, 12:20 AM
آخر رد: salahmax12
  [VB.NET] سؤال بسيط حول webbrowser trakktour 8 431 24-10-18, 05:39 AM
آخر رد: ScreamVoice
  [نقاش] خطأ بسيط في الاتصال بقاعدة البيانات اسامه الهرماوي 4 307 17-10-18, 01:44 AM
آخر رد: اسامه الهرماوي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم