تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[نقاش] كل ما يخص HtmlAgilityPack
#7
(29-08-17, 09:58 AM)سعود كتب :

كود :
Imports System.Net
Imports System.Text
Public Class Form1
   Dim lst As New List(Of String)
   Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
       AxWindowsMediaPlayer1.URL = lst(sender.selectedindex)
   End Sub
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim url As String = "http://www.mp3quran.net/tnjy.html"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)
       Dim doc As New HtmlAgilityPack.HtmlDocument
       html = WebUtility.HtmlDecode(html)
       doc.LoadHtml(html)
       Dim nod As HtmlAgilityPack.HtmlNodeCollection = doc.DocumentNode.SelectNodes("//table/tr")
       For r As Integer = 1 To nod.Count - 1
           For Each n As HtmlAgilityPack.HtmlNode In nod(r).SelectNodes("//td[4]/a")
               lst.Add(n.Attributes("href").Value)
           Next
           For Each n2 As HtmlAgilityPack.HtmlNode In nod(r).SelectNodes("//td[2]")
               If n2.InnerText.Contains("السورة") = False Then
                   ListBox1.Items.Add(n2.InnerText)
               End If
           Next
       Next
   End Sub
End Class
هذا مثال لقاريء واحد

(29-08-17, 06:21 PM)السندبااد كتب :
السلام عليكم ورحمة الله وبركاته
أفضل طريقة كما تفضل الأخ سعود هي HtmlAgilityPack وللأسباب التي شرحها الأخ الشاكي لله في موضوعه

المثال الذي وضعه الأخ سعود رائع جداً، فألف شكر لك أستاذي العزيز، ولكن حتى لا تظهر السور مكررة فقد أجريت تعديلات بسيطة على كود تحميل الفورم، وهذا الكود بعد التعديل:

كود :
       Dim url As String = "http://www.mp3quran.net/tnjy.html"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)
       Dim doc As New HtmlAgilityPack.HtmlDocument
       html = WebUtility.HtmlDecode(html)
       doc.LoadHtml(html)
       Dim nod As HtmlAgilityPack.HtmlNodeCollection = doc.DocumentNode.SelectNodes("//table/tr")
       Dim nodeTitle As HtmlAgilityPack.HtmlNode = doc.DocumentNode.SelectSingleNode("//html/body/div[3]/div[6]/div[1]/div/div/h3")
       Me.Text = nodeTitle.InnerText
       For Each n As HtmlAgilityPack.HtmlNode In doc.DocumentNode.SelectNodes("//td[4]/a")
           lst.Add(n.Attributes("href").Value)
       Next
       For Each n2 As HtmlAgilityPack.HtmlNode In doc.DocumentNode.SelectNodes("//td[2]")
           If n2.InnerText.Contains("السورة") = False Then
               ListBox1.Items.Add(n2.InnerText)
           End If
       Next

والله يا اخوتى جزاكم الله كل خير...
لكن انا عندى برامج كثيرة وعندى معظم مشاريعك اخى سعود بما فيهم مثال الحفظ الذى يضم
كل القراء لكن انا عاوز افهم مش عاوز حاجة جاهزة يعنى مثلا ليه حطيت هذا الكود فى مثالك ("//td[4]/a وهذا ("//td[2
؟؟ على اساس لما اجى اعمل اى برنامج مثلهم اكون فاهم انا بعمل ايه......
ومع ذلك لا اريد اتعابكم اكثر لانى قولت فى البداية اننا لا اريد شيئ جاهز بل اريد الفهم
لكن يبدو ان الوقت وقف عائقا امامكم لعمل شرح مبسط.
الرد }}}
تم الشكر بواسطة: السندبااد


الردود في هذا الموضوع
كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 28-08-17, 01:38 AM
RE: ممكن شرح مبسط لل vb.net Regex Match - بواسطة ابو روضة - 29-08-17, 06:39 PM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 02-09-17, 02:14 AM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 02-09-17, 07:28 AM
RE: كل ما يخص HtmlAgilityPack - بواسطة سعود - 02-09-17, 07:34 AM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 02-09-17, 04:32 PM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 02-09-17, 07:06 PM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 03-09-17, 12:11 AM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 03-09-17, 05:01 AM
RE: كل ما يخص HtmlAgilityPack - بواسطة سعود - 03-09-17, 05:08 AM
RE: كل ما يخص HtmlAgilityPack - بواسطة ابو روضة - 03-09-17, 05:13 AM


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


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