تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] إختصار كود طويل حدا
#1
السلام عليكم ورحمة الله وبركاته...

لدى كود طويل جدا بجلب به نصوص عناوين لقصص محددة من على الانترنت..
الصفحة التى بجلب منها القصص بها نصوص بعمل لها استثناء لآنى لا أريدها...
وهذه صورة للكود كى تفهموا المقصد





وهذا هو الكود

كود :
Dim input As HtmlElementCollection
       input = wb.Document.GetElementsByTagName("a")
       For Each item As HtmlElement In input
           If item.GetAttribute("href").Contains(".htm") _
               AndAlso (Not item.InnerText.Contains("قصص نسائية")) _
               AndAlso (Not item.GetAttribute("href").Contains(".pdf") _
                        AndAlso (Not item.InnerText.Contains("قصص الرسول")) _
                        AndAlso (Not item.InnerText.Contains("الحصاد المر")) _
                              AndAlso (Not item.InnerText.Contains("للنساء فقط")) _
                                     AndAlso (Not item.InnerText.Contains("البيت السعيد")) _
                                      AndAlso (Not item.InnerText.Contains("تربية الأبناء")) _
                                       AndAlso (Not item.InnerText.Contains("الدورات العلمية")) _
                                          AndAlso (Not item.InnerText.Contains("تفعيل العمل الخيري")) _
               AndAlso (Not item.InnerText.Contains("المسابقات الثقافية")) _
               AndAlso (Not item.InnerText.Contains("المخيمات الدعوية")) _
               AndAlso (Not item.InnerText.Contains("الألعاب الحركية والذهنية")) _
               AndAlso (Not item.InnerText.Contains("الرحلات الدعوية")) _
               AndAlso (Not item.InnerText.Contains("حلقات تحفيظ القرآن")) _
               AndAlso (Not item.InnerText.Contains("الدعوة في المنتديات")) _
               AndAlso (Not item.InnerText.Contains("ساهم في نشر الإسلام")) _
                        AndAlso (Not item.InnerText.Contains("مذكرات ضابط أمن"))) Then
               lst.Add(item.GetAttribute("href"))
               CheckedListBox1.Items.Add(item.InnerText)
           End If
       Next item

وهذه هى الصفحة وما اريده منها العناوين الموجودة فى وسط الصفحة ليست التى على اليمين ولا اليسار.


والكود شغال تمام لكنه طويل جدا...
الرد
تم الشكر بواسطة: سعود
#2
(17-12-20, 07:01 AM)ابو روضة كتب :
السلام عليكم ورحمة الله وبركاته...

لدى كود طويل جدا بجلب به نصوص عناوين لقصص محددة من على الانترنت..
الصفحة التى بجلب منها القصص بها نصوص بعمل لها استثناء لآنى لا أريدها...
وهذه صورة للكود كى تفهموا المقصد





وهذا هو الكود

كود :
Dim input As HtmlElementCollection
       input = wb.Document.GetElementsByTagName("a")
       For Each item As HtmlElement In input
           If item.GetAttribute("href").Contains(".htm") _
               AndAlso (Not item.InnerText.Contains("قصص نسائية")) _
               AndAlso (Not item.GetAttribute("href").Contains(".pdf") _
                        AndAlso (Not item.InnerText.Contains("قصص الرسول")) _
                        AndAlso (Not item.InnerText.Contains("الحصاد المر")) _
                              AndAlso (Not item.InnerText.Contains("للنساء فقط")) _
                                     AndAlso (Not item.InnerText.Contains("البيت السعيد")) _
                                      AndAlso (Not item.InnerText.Contains("تربية الأبناء")) _
                                       AndAlso (Not item.InnerText.Contains("الدورات العلمية")) _
                                          AndAlso (Not item.InnerText.Contains("تفعيل العمل الخيري")) _
               AndAlso (Not item.InnerText.Contains("المسابقات الثقافية")) _
               AndAlso (Not item.InnerText.Contains("المخيمات الدعوية")) _
               AndAlso (Not item.InnerText.Contains("الألعاب الحركية والذهنية")) _
               AndAlso (Not item.InnerText.Contains("الرحلات الدعوية")) _
               AndAlso (Not item.InnerText.Contains("حلقات تحفيظ القرآن")) _
               AndAlso (Not item.InnerText.Contains("الدعوة في المنتديات")) _
               AndAlso (Not item.InnerText.Contains("ساهم في نشر الإسلام")) _
                        AndAlso (Not item.InnerText.Contains("مذكرات ضابط أمن"))) Then
               lst.Add(item.GetAttribute("href"))
               CheckedListBox1.Items.Add(item.InnerText)
           End If
       Next item

وهذه هى الصفحة وما اريده منها العناوين الموجودة فى وسط الصفحة ليست التى على اليمين ولا اليسار.


والكود شغال تمام لكنه طويل جدا...




"العناوين الموجودة فى وسط الصفحة ليست التى على اليمين ولا اليسار"
كود :
Dim input = wb.Document.GetElementById("AutoNumber1").GetElementsByTagName("tr")
For Each item As HtmlElement In input
   Dim a = item.GetElementsByTagName("a")(0).GetAttribute("href")
   Dim t = item.InnerText.Trim
   If a.ToLower.EndsWith(".htm") Then
       lst.Add(a)
       CheckedListBox1.Items.Add(t)
   End If
Next item
الرد
تم الشكر بواسطة: سعود , ابو روضة
#3
(17-12-20, 11:46 AM)shafik كتب :
كود :
For Each item As HtmlElement In input
   Dim a = item.GetElementsByTagName("a")(0).GetAttribute("href")
   Dim t = item.InnerText.Trim
   If a.ToLower.EndsWith(".htm") Then
       lst.Add(a)
       CheckedListBox1.Items.Add(t)
   End If
Next item

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



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


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