تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اقتناص الروابط بمجرد ظهورها
#1
السلام عليكم ورحمة الله وبركاته
اخوتى انا حاطط اكواد داخل اداة الويب براوزر وحاطط فى الزر الذهاب للموقع المراد اقتناص 
الروابط منه لكن حينما يذهب الى الموقع ويحط الرابط ويجلب الروابط وكله تمام الويب براوزر
بيفضل يقتنص الروابط ويفضل يقتنصها الى مالا نهاية مع انى حاطط شرط ولما بحط الاكواد داخل الزر مباشرة بعطى
له وقت كبير الى ما يذهب للرابط ثم يضع الرابط وينتظر ظهور الروابط ثم يقتنصها...
وانا اريد لما اضغط على الذر يذهب الى الموقع ويقوم بتنفيذ الاوامر التى اعطيته له وحين يجد
الروابط يقتنصها مباشرة دون زيادة او نقصان...
وهذا هو الكود وهو شغال كويس على فكرة ولا به اى مشاكل المشكلة فقط اننى لو حطيت هذا الكود
فى الزر سيأخذ وقت كبير جدا ولما بضعه داخل الويب براوزر بيقتنص الروابط لعدد مالا نهاية يقتنصها ويعيد مرات ومرات


PHP كود :
هذا الكود بضعه فى الزر

  WebBrowser1
.Navigate("http://www.downvids.net/download-youtube-channel-videos")
     
        Await Task
.Delay(10000)


 
WebBrowser1.Document.GetElementById("home_search_q").InnerText TextBox1.Text
        WebBrowser1
.Document.GetElementById("home_search_submit").InvokeMember("Click")

وهذا داخل الويب براوزر

        Await Task
.Delay(30000)

 
       Dim input As HtmlElementCollection
        input 
WebBrowser1.Document.GetElementsByTagName("a")
 
       For Each item As HtmlElement In input
            If item
.InnerText = ("Download as video"Then
                lis
.Add(item.GetAttribute("href"))
 
           End If
 
       Next item
        Dim ss 
As HtmlElementCollection
        ss 
WebBrowser1.Document.GetElementsByTagName("span")
 
       For Each item As HtmlElement In ss
            If item
.GetAttribute("Id").Contains("msgtxt3567146535"Then
                Do
                    ListBox1
.Items.Add(item.InnerText)
 
                   If item.GetAttribute("Id").Contains("msgtxt3567146535"Then
                        Exit 
Do
 
                   End If
 
               Loop
                Label2
.Text "عدد الفيديوهات ......." ListBox1.Items.Count

            End 
If
 
       Next item 
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

السبب فى التكرار اللا نهائي هو هذا الجزء لاستخدام Do
كود :
               Do
                   ListBox1.Items.Add(item.InnerText)
                   If item.GetAttribute("Id").Contains("msgtxt3567146535") Then
                       Exit Do
                   End If
               Loop

قم باستبداله بهذا الكود
كود :
ListBox1.Items.Add(item.InnerText)

وان شاء الله سيعمل دون الحاجة لباقى كود الـ Do والتحقق

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: Amir_Alzubidy
#3
(17-08-18, 03:08 AM)elgokr كتب :
وعليكم السلام ورحمة الله وبركاته

السبب فى التكرار اللا نهائي هو هذا الجزء لاستخدام Do
كود :
               Do
                   ListBox1.Items.Add(item.InnerText)
                   If item.GetAttribute("Id").Contains("msgtxt3567146535") Then
                       Exit Do
                   End If
               Loop

قم باستبداله بهذا الكود
كود :
ListBox1.Items.Add(item.InnerText)

وان شاء الله سيعمل دون الحاجة لباقى كود الـ Do والتحقق

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

للأسف أخى الجوكر تكررت أكثر وأكثر وصدقنى بحاول فيها كتير
الرد }}}
تم الشكر بواسطة:
#4
فى البداية انا لا يمكننى اختبار نتائج الكود
بسبب ان الموقع المشتخدم لا يعمل لدى بصورة جيدة 
ولا اعلم مصدر خطاء الموقع داخل المشروع قد يكون بسبب الجافا و المتصفح

لذلك قمت بعمل تعديل على الكود المطلوب وتم توضيحه بردى مسبقاً
لان وظيفة Do فى الكود ليس لها اى اهمية ولا لها اى داع فى الاستخدام

طيب بعد ما عملت استبدال الكود من الى كما فى ردي السابق
لازال الامر مستغرق فى جلب الروابط

قد يكون الاسباب ترجع الى التالى
اما انك تستخدم رابط قناه تحتوى على عديد من الفيديوهات
لذلك يستغرق الامر معك كثيراً وتعتقد انه يقوم بالتكرار
حيث ان الرابط المستخدم هو 
PHP كود :
http://www.downvids.net/download-youtube-channel-videos 

ولاخط ان الرابط يقول انه يريد التحميل من ( channel ) وليس List أو رابط فيديو مستقل

ابحث فى التعليقات على قنوات الاشخاص التى تحتوى على فيديوها بسيطة
يعنى مثلاً هذا الشخص يحتوى على 16 فيديو على القناه تقريباً

جربه بعد اتمام التعديل حتى تقدر ان تري ان المشكلة فى عدد الفيديوهات
ولا القناه التى تحتوى على فيديوهات كثيرة وانت تعتقد انه يكرر بدون توقف

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: ابو روضة
#5
(17-08-18, 10:57 PM)elgokr كتب :
فى البداية انا لا يمكننى اختبار نتائج الكود
بسبب ان الموقع المشتخدم لا يعمل لدى بصورة جيدة 
ولا اعلم مصدر خطاء الموقع داخل المشروع قد يكون بسبب الجافا و المتصفح

لذلك قمت بعمل تعديل على الكود المطلوب وتم توضيحه بردى مسبقاً
لان وظيفة Do فى الكود ليس لها اى اهمية ولا لها اى داع فى الاستخدام

طيب بعد ما عملت استبدال الكود من الى كما فى ردي السابق
لازال الامر مستغرق فى جلب الروابط

قد يكون الاسباب ترجع الى التالى
اما انك تستخدم رابط قناه تحتوى على عديد من الفيديوهات
لذلك يستغرق الامر معك كثيراً وتعتقد انه يقوم بالتكرار
حيث ان الرابط المستخدم هو 
PHP كود :
http://www.downvids.net/download-youtube-channel-videos 

ولاخط ان الرابط يقول انه يريد التحميل من ( channel ) وليس List أو رابط فيديو مستقل

ابحث فى التعليقات على قنوات الاشخاص التى تحتوى على فيديوها بسيطة
يعنى مثلاً هذا الشخص يحتوى على 16 فيديو على القناه تقريباً

جربه بعد اتمام التعديل حتى تقدر ان تري ان المشكلة فى عدد الفيديوهات
ولا القناه التى تحتوى على فيديوهات كثيرة وانت تعتقد انه يكرر بدون توقف

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

فعلا اخى القناة بها فيديوهات كثيرة جدا كمان والرابط الذى وضعته انت نفع ومشى الحال..
                                          لكن التكرار سببه اننى كنت ناسى وضع هذا الكود
        ListBox1.Items.Clear()


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

فكل ما عليك هو مثلاً عمل اى مسمى رقمى يبداء برقم 0 خارج for
والاخر من نوع رقمي ايضاً ويكون قيمته كذلك 0 ايضاً خارج for
ومن ثم تقوم بوضع بعد كود اضافة الرابط لليست ان القيمة للرقم +1

هيكون الشكل مثلاً وكلاهما خارج For
كود :
Dim i As Integer = 0
Dim ii As Integer = 0

وما داخل For اسفل كود اضافة الرابط لليست يكون التالى
كود :
i += 1

وبعدها تعمل مثلاً كود تحقق اسفل منه كالتالى
كود :
       If i >= ii + 20 Then
           ii = i
           MessageBox.Show("تم الانتهاء من تحميل " & ii & "هل تريد استكمال التحميل", "تاكيد", MessageBoxButtons.YesNo)
       End If

وبكده انت كل مثلاً 20 رابط تم جلبه تظهر رسالة الاستكمال او لا
وتضع اسف الرسالة كود اذا كان اختار yes يتجاهل اى حاجة وهيستكمل عمله عادى
واذا اختار no يقوم بانهاء كود الزر 

يمكنك التعديل على رقم 20 الى الرقم المناسب حسب تعامل البرنامج والجهاز لديك فى اللود

وهذا ما الا فكرة ويعتمد بالنهاية عليك

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: ابو روضة
#7
(17-08-18, 11:55 PM)elgokr كتب :
اذا كان الروابط كثيرة أو قليلة سيتم التعامل معها عادى بدون مشكلة
لكن قد تواجه بعض اللاج فى تحميل الروابط بسبب كثرتها مثلاً

فكل ما عليك هو مثلاً عمل اى مسمى رقمى يبداء برقم 0 خارج for
والاخر من نوع رقمي ايضاً ويكون قيمته كذلك 0 ايضاً خارج for
ومن ثم تقوم بوضع بعد كود اضافة الرابط لليست ان القيمة للرقم +1

هيكون الشكل مثلاً وكلاهما خارج For
كود :
Dim i As Integer = 0
Dim ii As Integer = 0

وما داخل For اسفل كود اضافة الرابط لليست يكون التالى
كود :
i += 1

وبعدها تعمل مثلاً كود تحقق اسفل منه كالتالى
كود :
       If i >= ii + 20 Then
           ii = i
           MessageBox.Show("تم الانتهاء من تحميل " & ii & "هل تريد استكمال التحميل", "تاكيد", MessageBoxButtons.YesNo)
       End If

وبكده انت كل مثلاً 20 رابط تم جلبه تظهر رسالة الاستكمال او لا
وتضع اسف الرسالة كود اذا كان اختار yes يتجاهل اى حاجة وهيستكمل عمله عادى
واذا اختار no يقوم بانهاء كود الزر 

يمكنك التعديل على رقم 20 الى الرقم المناسب حسب تعامل البرنامج والجهاز لديك فى اللود

وهذا ما الا فكرة ويعتمد بالنهاية عليك

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

جزاك الله كل الخير والسعادة اخى واستاذى الجوكر لوقوفك بجوار الجميع دائما....
يبدو  ان هذا سيكون بطيئا وممّلاً نوعا ما ويبدو ان التعامل مع الويب براوزر اصبح يرمز الى جيل الفراعنة هههه..
قام صديق لى بعمله بالويب ريكويست وصراحة سريعة لدرجة انه يجلب الروابط فى اقل من ثلاث ثوانى
وتمنيت من امس اننى اتعلم هذه التقنية لكنى بعد البحث لم اجد لها شرحا ثقيلا عربيا..
الله المستعان واعتذر لك مغلبك معايا
الرد }}}
تم الشكر بواسطة: elgokr , elgokr
#8
(18-08-18, 12:29 PM)ابو روضة كتب :
جزاك الله كل الخير والسعادة اخى واستاذى الجوكر لوقوفك بجوار الجميع دائما....
يبدو  ان هذا سيكون بطيئا وممّلاً نوعا ما ويبدو ان التعامل مع الويب براوزر اصبح يرمز الى جيل الفراعنة هههه..
قام صديق لى بعمله بالويب ريكويست وصراحة سريعة لدرجة انه يجلب الروابط فى اقل من ثلاث ثوانى
وتمنيت من امس اننى اتعلم هذه التقنية لكنى بعد البحث لم اجد لها شرحا ثقيلا عربيا..
الله المستعان واعتذر لك مغلبك معايا

جميل جداً وهذا افضل بكثير لتجنب اصدارات المتصفحات وتفاعل الجافا ايضاً
يمكنك الاستفادة من الكود الذى امتلكته لديك
فكل ما عليك فعله هو معرفة ما فعله الشخص فى كتابة الكود

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

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#9
(18-08-18, 06:41 PM)elgokr كتب :
جميل جداً وهذا افضل بكثير لتجنب اصدارات المتصفحات وتفاعل الجافا ايضاً
يمكنك الاستفادة من الكود الذى امتلكته لديك
فكل ما عليك فعله هو معرفة ما فعله الشخص فى كتابة الكود

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

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

انت فنان ودماغك هذه ماشاء الله عليها.....

ربنا يحفظك أينما كنت أخى وحبيبى
الرد }}}
تم الشكر بواسطة: elgokr , ابراهيم ايبو , ابراهيم ايبو
#10
(16-08-18, 05:08 PM)ابو روضة كتب : السلام عليكم ورحمة الله وبركاته
اخوتى انا حاطط اكواد داخل اداة الويب براوزر وحاطط فى الزر الذهاب للموقع المراد اقتناص 
الروابط منه لكن حينما يذهب الى الموقع ويحط الرابط ويجلب الروابط وكله تمام الويب براوزر
بيفضل يقتنص الروابط ويفضل يقتنصها الى مالا نهاية مع انى حاطط شرط ولما بحط الاكواد داخل الزر مباشرة بعطى
له وقت كبير الى ما يذهب للرابط ثم يضع الرابط وينتظر ظهور الروابط ثم يقتنصها...
وانا اريد لما اضغط على الذر يذهب الى الموقع ويقوم بتنفيذ الاوامر التى اعطيته له وحين يجد
الروابط يقتنصها مباشرة دون زيادة او نقصان...
وهذا هو الكود وهو شغال كويس على فكرة ولا به اى مشاكل المشكلة فقط اننى لو حطيت هذا الكود
فى الزر سيأخذ وقت كبير جدا ولما بضعه داخل الويب براوزر بيقتنص الروابط لعدد مالا نهاية يقتنصها ويعيد مرات ومرات


PHP كود :
هذا الكود بضعه فى الزر

  WebBrowser1
.Navigate("http://www.downvids.net/download-youtube-channel-videos")
     
        Await Task
.Delay(10000)


 
WebBrowser1.Document.GetElementById("home_search_q").InnerText TextBox1.Text
        WebBrowser1
.Document.GetElementById("home_search_submit").InvokeMember("Click")

وهذا داخل الويب براوزر

        Await Task
.Delay(30000)

 
       Dim input As HtmlElementCollection
        input 
WebBrowser1.Document.GetElementsByTagName("a")
 
       For Each item As HtmlElement In input
            If item
.InnerText = ("Download as video"Then
                lis
.Add(item.GetAttribute("href"))
 
           End If
 
       Next item
        Dim ss 
As HtmlElementCollection
        ss 
WebBrowser1.Document.GetElementsByTagName("span")
 
       For Each item As HtmlElement In ss
            If item
.GetAttribute("Id").Contains("msgtxt3567146535"Then
                Do
                    ListBox1
.Items.Add(item.InnerText)
 
                   If item.GetAttribute("Id").Contains("msgtxt3567146535"Then
                        Exit 
Do
 
                   End If
 
               Loop
                Label2
.Text "عدد الفيديوهات ......." ListBox1.Items.Count

            End 
If
 
       Next item 

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

 Dim u() As Process
    Dim w() As Process
    Private Sub CheckIfRunning()
        u = Process.GetProcessesByName("URLHelper")
        If u.Count > 0 Then
            Process.GetProcessesByName("URLHelper")(0).Kill()
        Else
            ' Process is not running
        End If
        u = Process.GetProcessesByName("UrlChecker")
        If u.Count > 0 Then
            Process.GetProcessesByName("UrlChecker")(0).Kill()
        Else
            ' Process is not running
        End If
        w = Process.GetProcessesByName("Wireshark")
        If w.Count > 0 Then
            Process.GetProcessesByName("Wireshark")(0).Kill()
        Else
            ' Process is not running
        End If

    End Sub
الرد }}}
تم الشكر بواسطة: ابو روضة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد كود لمسح النص من textbox بمجرد الضغط على ال textebox للكتابة رهف العريفي 21 11,906 03-06-23, 04:56 AM
آخر رد: سعود
  [سؤال] موضوع جد خطيرررر:بمجرد عمل exe للمشروع يراه برنامج الفيروسات على انه فيروس dr.programming 5 661 23-05-23, 01:50 PM
آخر رد: alfaiz678
  اقتناص حدث تحديث او حذف او اضافة ملف ابو محمد محمد محمد 6 564 21-04-23, 05:49 PM
آخر رد: ابو محمد محمد محمد
  [كود] إظهار رقم الطالب بمجرد كتابة اسمة ali bajmmal 3 670 24-09-22, 10:43 PM
آخر رد: alfaiz678
  جلب الروابط من اليوتيوب بالاسماء anes 2 786 08-10-21, 01:18 PM
آخر رد: anes
  [VB.NET] التعديل علي كود عرض الصور وفتح الروابط الخاصه بالصور ميدو الفنان 20 4,248 23-12-20, 01:54 AM
آخر رد: ميدو الفنان
  رسالة خطأ بمجرد الضغط داخل التكست بوكس ahmedfa71 0 958 12-02-20, 05:11 PM
آخر رد: ahmedfa71
  [سؤال] ياشباب عاوز اتحكم في الروابط بتع البرنامج بتعي عن طريقه الدروب بوكس ازاي ؟ medowassem 0 1,050 20-01-20, 07:32 PM
آخر رد: medowassem
  [Acces2007] كيف يمكن استخدام اداة WebBrowser4 داخل الاكسز بدون حفظ الروابط المستخدمة على الجهاز come2playati 0 1,328 05-02-19, 09:04 PM
آخر رد: come2playati
  هل يمكن اقتناص رابط الفيديو bidaya 12 4,113 23-01-19, 03:21 PM
آخر رد: elgokr

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


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