منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : جلب كامل الصفحة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم إخوتى
بموضوع مضى ساعدنى الاخ الجوكر الله يكرمه بكود ينزل لآسفل صفحة على الانترنت
ليجلب كل المواضيع لكن وقتها كان الموضوع بالويب براوزر لكن الويب براوزر اصبح
الآن غير عملى إطلاقا فقمت بفضل الله بجلب هذه الصفحات بال HtmlAgilityPack
لكن المشكلة ان الصفحة بها مائة موضوع وهذا الكود يجلب فقط اول 10 مواضيع
فكيف أجلب كل المواضيع التى بالصفحة الله يبارك فيكم..
الكود

كود :
Dim url As String = "https://www.storiesrealistic.com/category/قصص-اطفال/"
       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("//h2[@class='entry-title']/a")
           ListBox2.Items.Add(n.InnerText)
           lst.Add(n.Attributes("href").Value)

           Me.Text = ListBox2.Items.Count
       Next
أتمنى يكون لها حل
وعليكم السلام ورحمة الله وبركاته

شوف لاتمام ذلك ستحتاج لدمج وظيفة WB لعمل الكليك
من ثم استكمال الباقى على كودك الحال بمعنى

حالياً انت لديك الكود التالى
كود :
       Dim url As String = "https://www.storiesrealistic.com/category/قصص-اطفال/"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)
       Dim doc As New HtmlDocument
       doc.LoadHtml(html)

       For Each n As HtmlNode In doc.DocumentNode.SelectNodes("//h2[@class='entry-title']/a")
           ListBox1.Items.Add(n.InnerText)
           lst.Add(n.Attributes("href").Value)
           Me.Text = ListBox1.Items.Count
       Next

سيتم تقسيمه على 2 بحيث سنحتفظ بالكود السفى وهو 
كود :
       Dim doc As New HtmlDocument
       doc.LoadHtml(html)

       For Each n As HtmlNode In doc.DocumentNode.SelectNodes("//h2[@class='entry-title']/a")
           ListBox1.Items.Add(n.InnerText)
           lst.Add(n.Attributes("href").Value)
           Me.Text = ListBox1.Items.Count
       Next

الان ناتى على الكود التالى وهو الخاص بالجزء العلوى
كود :
       Dim url As String = "https://www.storiesrealistic.com/category/قصص-اطفال/"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)

وظيفة هذا الجزء هو فتح الصفحة الموجود رابطه بالاعلى من ثم جلب كود HTML الموجود بالصفحة

وكل ده يلخط عن السطر التالى
كود :
       Dim html As String = wc.DownloadString(url)

طيب ايه المطلوب هنا
المطلوب التالى الكود العلو كاملاً لا حاجة له الا السطر الاخير سيتم التعديل عليه بنهاية الموضوع

وكل ما هو مطلوب منك عمل كود عرض الرابط فى اداء WB ومن ثم عمل الضغط على الزر مشاهدة المزيد حتى اخر زر
حتى هنا جميل وسيتم عمل التالى

مكان السطر الذى تحدثنا عنه مسبقاً هو ما سنقوم بالتعديل عليه ليكون بهذا الشكل
كود :
Dim html As String = wb.DocumentText

بكده انت رحلت كود الصفحة كاملة بعد تحميل كل الصفحات خاصة مشاهدة المزيد الى Html
ليتم استكمال باقى الكود وجلب العناوين والرابط كما فى الكود السفلى

نقطة مهمة لا يلزم ان تقوم بانشاء اداء WB فى الفورم 
يكفى ان تستخدم من خلال الكود التالى 
كود :
Dim wb As New WebBrowser

اتمنى ان تكون الصورة والفكرة وضحت لك كاملاً

تحياتى لك
وتمنياتى لك التوفيق
(08-11-18, 02:41 PM)elgokr كتب : [ -> ]
وعليكم السلام ورحمة الله وبركاته

شوف لاتمام ذلك ستحتاج لدمج وظيفة WB لعمل الكليك
من ثم استكمال الباقى على كودك الحال بمعنى

حالياً انت لديك الكود التالى
كود :
       Dim url As String = "https://www.storiesrealistic.com/category/قصص-اطفال/"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)
       Dim doc As New HtmlDocument
       doc.LoadHtml(html)

       For Each n As HtmlNode In doc.DocumentNode.SelectNodes("//h2[@class='entry-title']/a")
           ListBox1.Items.Add(n.InnerText)
           lst.Add(n.Attributes("href").Value)
           Me.Text = ListBox1.Items.Count
       Next

سيتم تقسيمه على 2 بحيث سنحتفظ بالكود السفى وهو 
كود :
       Dim doc As New HtmlDocument
       doc.LoadHtml(html)

       For Each n As HtmlNode In doc.DocumentNode.SelectNodes("//h2[@class='entry-title']/a")
           ListBox1.Items.Add(n.InnerText)
           lst.Add(n.Attributes("href").Value)
           Me.Text = ListBox1.Items.Count
       Next

الان ناتى على الكود التالى وهو الخاص بالجزء العلوى
كود :
       Dim url As String = "https://www.storiesrealistic.com/category/قصص-اطفال/"
       Dim wc As New WebClient
       wc.Encoding = Encoding.UTF8
       Dim html As String = wc.DownloadString(url)

وظيفة هذا الجزء هو فتح الصفحة الموجود رابطه بالاعلى من ثم جلب كود HTML الموجود بالصفحة

وكل ده يلخط عن السطر التالى
كود :
       Dim html As String = wc.DownloadString(url)

طيب ايه المطلوب هنا
المطلوب التالى الكود العلو كاملاً لا حاجة له الا السطر الاخير سيتم التعديل عليه بنهاية الموضوع

وكل ما هو مطلوب منك عمل كود عرض الرابط فى اداء WB ومن ثم عمل الضغط على الزر مشاهدة المزيد حتى اخر زر
حتى هنا جميل وسيتم عمل التالى

مكان السطر الذى تحدثنا عنه مسبقاً هو ما سنقوم بالتعديل عليه ليكون بهذا الشكل
كود :
Dim html As String = wb.DocumentText

بكده انت رحلت كود الصفحة كاملة بعد تحميل كل الصفحات خاصة مشاهدة المزيد الى Html
ليتم استكمال باقى الكود وجلب العناوين والرابط كما فى الكود السفلى

نقطة مهمة لا يلزم ان تقوم بانشاء اداء WB فى الفورم 
يكفى ان تستخدم من خلال الكود التالى 
كود :
Dim wb As New WebBrowser

اتمنى ان تكون الصورة والفكرة وضحت لك كاملاً

تحياتى لك
وتمنياتى لك التوفيق

فضيت نفسك وكتبت كل هذا بدون أن تأخذ شيئ مقابل تعبك هذا فماذا عساى أن
أفعل أو أقول لك ؟ والله ليس شيئ أفضل من " ربنا يجزيك كل الخير ويزيدك من علمه وفضله كمان وكمان "...
والحقيقة أنى إنتظرت أمس كثيرا ولم أجد أى رد واعلم انك كنت لست موجودا لآنك لابد وأن ترد على الجميع
سبحان الله وماشاء الله " امسك الخشب يبنى والله عليك"
الى أن حل لى صديق أعرفه المشكلة لا يقل ابداعا عنك وهذا ما دار بيننا لعل وعسى تكون
زيادة فى المعلومة وتفيد الجميع.

الكود


كود :
Try
           For i As Integer = 1 To NumericUpDown1.Value
               Dim url As String = ("https://www.storiesrealistic.com/category/%D9%82%D8%B5%D8%B5-%D8%A7%D8%B7%D9%81%D8%A7%D9%84/page/" & i)
               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("//h2[@class='entry-title']/a")
                   ListBox1.Items.Add(n.InnerText)
                   TextBox1.Text = ListBox1.Items.Count
               Next
           Next
       Catch ex As Exception
       End Try


الحوار البسيط

أنا
صراحة ماشاء الله عليك والله لك لمسات ابداعية لا توصف " حقيقة "
موضوع كان مغلبنى كتير جدا..

لكن هل هذه الطريقة تنفع مع اى موقع أم هذا الموقع فقط ؟

هو

بطبع على حسب الموقع،إذا كان يعتمد على نفس المنهجية أي بستعمال ( /page

فهذا الكود سيقوم بالأمر..
إنتهى الحوار,


فجزاك الله جنة عرضها كعرض السموات والأرض حبيبى جوكر باشا وسيتم طبعا تجربة الكود بتاعك