السلام عليكم ورحمة الله وبركاته
اخوتى انا حاطط اكواد داخل اداة الويب براوزر وحاطط فى الزر الذهاب للموقع المراد اقتناص
الروابط منه لكن حينما يذهب الى الموقع ويحط الرابط ويجلب الروابط وكله تمام الويب براوزر
بيفضل يقتنص الروابط ويفضل يقتنصها الى مالا نهاية مع انى حاطط شرط ولما بحط الاكواد داخل الزر مباشرة بعطى
له وقت كبير الى ما يذهب للرابط ثم يضع الرابط وينتظر ظهور الروابط ثم يقتنصها...
وانا اريد لما اضغط على الذر يذهب الى الموقع ويقوم بتنفيذ الاوامر التى اعطيته له وحين يجد
الروابط يقتنصها مباشرة دون زيادة او نقصان...
وهذا هو الكود وهو شغال كويس على فكرة ولا به اى مشاكل المشكلة فقط اننى لو حطيت هذا الكود
فى الزر سيأخذ وقت كبير جدا ولما بضعه داخل الويب براوزر بيقتنص الروابط لعدد مالا نهاية يقتنصها ويعيد مرات ومرات
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
وعليكم السلام ورحمة الله وبركاته
السبب فى التكرار اللا نهائي هو هذا الجزء لاستخدام
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 والتحقق
تحياتى لك
وتمنياتى لك التوفيق
(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 والتحقق
تحياتى لك
وتمنياتى لك التوفيق
للأسف أخى الجوكر تكررت أكثر وأكثر وصدقنى بحاول فيها كتير
فى البداية انا لا يمكننى اختبار نتائج الكود
بسبب ان الموقع المشتخدم لا يعمل لدى بصورة جيدة
ولا اعلم مصدر خطاء الموقع داخل المشروع قد يكون بسبب الجافا و المتصفح
لذلك قمت بعمل تعديل على الكود المطلوب وتم توضيحه بردى مسبقاً
لان وظيفة Do فى الكود ليس لها اى اهمية ولا لها اى داع فى الاستخدام
طيب بعد ما عملت استبدال الكود من الى كما فى ردي السابق
لازال الامر مستغرق فى جلب الروابط
قد يكون الاسباب ترجع الى التالى
اما انك تستخدم رابط قناه تحتوى على عديد من الفيديوهات
لذلك يستغرق الامر معك كثيراً وتعتقد انه يقوم بالتكرار
حيث ان الرابط المستخدم هو
PHP كود :
http://www.downvids.net/download-youtube-channel-videos
ولاخط ان الرابط يقول انه يريد التحميل من ( channel ) وليس List أو رابط فيديو مستقل
ابحث فى التعليقات على قنوات الاشخاص التى تحتوى على فيديوها بسيطة
يعنى مثلاً هذا الشخص يحتوى على 16 فيديو على القناه تقريباً
جربه بعد اتمام التعديل حتى تقدر ان تري ان المشكلة فى عدد الفيديوهات
ولا القناه التى تحتوى على فيديوهات كثيرة وانت تعتقد انه يكرر بدون توقف
تحياتى لك
وتمنياتى لك التوفيق
(17-08-18, 10:57 PM)elgokr كتب : [ -> ]فى البداية انا لا يمكننى اختبار نتائج الكود
بسبب ان الموقع المشتخدم لا يعمل لدى بصورة جيدة
ولا اعلم مصدر خطاء الموقع داخل المشروع قد يكون بسبب الجافا و المتصفح
لذلك قمت بعمل تعديل على الكود المطلوب وتم توضيحه بردى مسبقاً
لان وظيفة Do فى الكود ليس لها اى اهمية ولا لها اى داع فى الاستخدام
طيب بعد ما عملت استبدال الكود من الى كما فى ردي السابق
لازال الامر مستغرق فى جلب الروابط
قد يكون الاسباب ترجع الى التالى
اما انك تستخدم رابط قناه تحتوى على عديد من الفيديوهات
لذلك يستغرق الامر معك كثيراً وتعتقد انه يقوم بالتكرار
حيث ان الرابط المستخدم هو
PHP كود :
http://www.downvids.net/download-youtube-channel-videos
ولاخط ان الرابط يقول انه يريد التحميل من ( channel ) وليس List أو رابط فيديو مستقل
ابحث فى التعليقات على قنوات الاشخاص التى تحتوى على فيديوها بسيطة
يعنى مثلاً هذا الشخص يحتوى على 16 فيديو على القناه تقريباً
جربه بعد اتمام التعديل حتى تقدر ان تري ان المشكلة فى عدد الفيديوهات
ولا القناه التى تحتوى على فيديوهات كثيرة وانت تعتقد انه يكرر بدون توقف
تحياتى لك
وتمنياتى لك التوفيق
فعلا اخى القناة بها فيديوهات كثيرة جدا كمان والرابط الذى وضعته انت نفع ومشى الحال..
لكن التكرار سببه اننى كنت ناسى وضع هذا الكود
ListBox1.Items.Clear()
لكن نفترض اننى اريد جلب هذه الروابط الكثيرة فكيف يتم التعامل معهم ؟
وجزاك الله كل خير حبيبى
اذا كان الروابط كثيرة أو قليلة سيتم التعامل معها عادى بدون مشكلة
لكن قد تواجه بعض اللاج فى تحميل الروابط بسبب كثرتها مثلاً
فكل ما عليك هو مثلاً عمل اى مسمى رقمى يبداء برقم 0 خارج for
والاخر من نوع رقمي ايضاً ويكون قيمته كذلك 0 ايضاً خارج for
ومن ثم تقوم بوضع بعد كود اضافة الرابط لليست ان القيمة للرقم +1
هيكون الشكل مثلاً وكلاهما خارج For
كود :
Dim i As Integer = 0
Dim ii As Integer = 0
وما داخل For اسفل كود اضافة الرابط لليست يكون التالى
وبعدها تعمل مثلاً كود تحقق اسفل منه كالتالى
كود :
If i >= ii + 20 Then
ii = i
MessageBox.Show("تم الانتهاء من تحميل " & ii & "هل تريد استكمال التحميل", "تاكيد", MessageBoxButtons.YesNo)
End If
وبكده انت كل مثلاً 20 رابط تم جلبه تظهر رسالة الاستكمال او لا
وتضع اسف الرسالة كود اذا كان اختار yes يتجاهل اى حاجة وهيستكمل عمله عادى
واذا اختار no يقوم بانهاء كود الزر
يمكنك التعديل على رقم 20 الى الرقم المناسب حسب تعامل البرنامج والجهاز لديك فى اللود
وهذا ما الا فكرة ويعتمد بالنهاية عليك
تحياتى لك
وتمنياتى لك التوفيق
(17-08-18, 11:55 PM)elgokr كتب : [ -> ]اذا كان الروابط كثيرة أو قليلة سيتم التعامل معها عادى بدون مشكلة
لكن قد تواجه بعض اللاج فى تحميل الروابط بسبب كثرتها مثلاً
فكل ما عليك هو مثلاً عمل اى مسمى رقمى يبداء برقم 0 خارج for
والاخر من نوع رقمي ايضاً ويكون قيمته كذلك 0 ايضاً خارج for
ومن ثم تقوم بوضع بعد كود اضافة الرابط لليست ان القيمة للرقم +1
هيكون الشكل مثلاً وكلاهما خارج For
كود :
Dim i As Integer = 0
Dim ii As Integer = 0
وما داخل For اسفل كود اضافة الرابط لليست يكون التالى
وبعدها تعمل مثلاً كود تحقق اسفل منه كالتالى
كود :
If i >= ii + 20 Then
ii = i
MessageBox.Show("تم الانتهاء من تحميل " & ii & "هل تريد استكمال التحميل", "تاكيد", MessageBoxButtons.YesNo)
End If
وبكده انت كل مثلاً 20 رابط تم جلبه تظهر رسالة الاستكمال او لا
وتضع اسف الرسالة كود اذا كان اختار yes يتجاهل اى حاجة وهيستكمل عمله عادى
واذا اختار no يقوم بانهاء كود الزر
يمكنك التعديل على رقم 20 الى الرقم المناسب حسب تعامل البرنامج والجهاز لديك فى اللود
وهذا ما الا فكرة ويعتمد بالنهاية عليك
تحياتى لك
وتمنياتى لك التوفيق
جزاك الله كل الخير والسعادة اخى واستاذى الجوكر لوقوفك بجوار الجميع دائما....
يبدو ان هذا سيكون بطيئا وممّلاً نوعا ما ويبدو ان التعامل مع الويب براوزر اصبح يرمز الى جيل الفراعنة هههه..
قام صديق لى بعمله بالويب ريكويست وصراحة سريعة لدرجة انه يجلب الروابط فى اقل من ثلاث ثوانى
وتمنيت من امس اننى اتعلم هذه التقنية لكنى بعد البحث لم اجد لها شرحا ثقيلا عربيا..
الله المستعان واعتذر لك مغلبك معايا
(18-08-18, 12:29 PM)ابو روضة كتب : [ -> ]جزاك الله كل الخير والسعادة اخى واستاذى الجوكر لوقوفك بجوار الجميع دائما....
يبدو ان هذا سيكون بطيئا وممّلاً نوعا ما ويبدو ان التعامل مع الويب براوزر اصبح يرمز الى جيل الفراعنة هههه..
قام صديق لى بعمله بالويب ريكويست وصراحة سريعة لدرجة انه يجلب الروابط فى اقل من ثلاث ثوانى
وتمنيت من امس اننى اتعلم هذه التقنية لكنى بعد البحث لم اجد لها شرحا ثقيلا عربيا..
الله المستعان واعتذر لك مغلبك معايا
جميل جداً وهذا افضل بكثير لتجنب اصدارات المتصفحات وتفاعل الجافا ايضاً
يمكنك الاستفادة من الكود الذى امتلكته لديك
فكل ما عليك فعله هو معرفة ما فعله الشخص فى كتابة الكود
وتجرب الكود على شئ اخر مع قيام التعديلات واضافة وازالة من الكود
حتى توضح لك الفكرة كيفية استخدام الكود باكثر من طريقة
تحياتى لك
وتمنياتى لك التوفيق
(18-08-18, 06:41 PM)elgokr كتب : [ -> ]جميل جداً وهذا افضل بكثير لتجنب اصدارات المتصفحات وتفاعل الجافا ايضاً
يمكنك الاستفادة من الكود الذى امتلكته لديك
فكل ما عليك فعله هو معرفة ما فعله الشخص فى كتابة الكود
وتجرب الكود على شئ اخر مع قيام التعديلات واضافة وازالة من الكود
حتى توضح لك الفكرة كيفية استخدام الكود باكثر من طريقة
تحياتى لك
وتمنياتى لك التوفيق
انت فنان ودماغك هذه ماشاء الله عليها.....
ربنا يحفظك أينما كنت أخى وحبيبى
(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