منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
عرض جزء محدد من الصفحة داخل اداة ويب براوزر - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : عرض جزء محدد من الصفحة داخل اداة ويب براوزر (/showthread.php?tid=32721)



عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو روضة - 28-12-19

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

http://www.saaid.net/twitter/216.htm





RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو ليلى - 28-12-19

السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
بعد الاطلاع على الصفحة , 
الصفحة تحتوي على عدة جداول داخلها,و الجزء المظلل بالاصفر لديك يمثل جدول من 5 صفوف و عمود واحد.
الصف الاول يحتوي فاصل
الصف الثاني يحتوي العنوان
الصف الثالث يحتوي فاصل
الصف الرابع يحتوي الكاتب
الصف الخامس يحتوي محتوى المقالة

يمكنك جلب معلومات كل صف لديك كما تريد بواسطة Selenium .
المعلومات يمكن الوصول اليها عبر رقم الصف و رقم الخلية (المعلومات نصية).
بعدها يمكنك تخزينها باي حاوية نصية كما تريد.

اتوقع انك تعرف العمل مع Selenium بشكل جيد استخدم الدالة " FindElement(By.XPath"
يمكنك الحصول على المسار عبر الصورة التالية



ضع النص الذي تحصل عليه في وسيطة الدالة.

مثال المسار الخاص بمحتوى المقالة يمكن استقباله كنص كما يلي:
PHP كود :
       Dim Content As String Driver.FindElement(By.XPath("/html/body/div[2]/center/table/tbody/tr/td[3]/center/table[2]/tbody/tr[1]/td/center/table/tbody/tr[5]/td/p[2]")).Text 



RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو روضة - 28-12-19

(28-12-19, 09:12 PM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
بعد الاطلاع على الصفحة , 
الصفحة تحتوي على عدة جداول داخلها,و الجزء المظلل بالاصفر لديك يمثل جدول من 5 صفوف و عمود واحد.
الصف الاول يحتوي فاصل
الصف الثاني يحتوي العنوان
الصف الثالث يحتوي فاصل
الصف الرابع يحتوي الكاتب
الصف الخامس يحتوي محتوى المقالة

يمكنك جلب معلومات كل صف لديك كما تريد بواسطة Selenium .
المعلومات يمكن الوصول اليها عبر رقم الصف و رقم الخلية (المعلومات نصية).
بعدها يمكنك تخزينها باي حاوية نصية كما تريد.

اتوقع انك تعرف العمل مع Selenium بشكل جيد استخدم الدالة " FindElement(By.XPath"
يمكنك الحصول على المسار عبر الصورة التالية



ضع النص الذي تحصل عليه في وسيطة الدالة.

مثال المسار الخاص بمحتوى المقالة يمكن استقباله كنص كما يلي:
PHP كود :
       Dim Content As String Driver.FindElement(By.XPath("/html/body/div[2]/center/table/tbody/tr/td[3]/center/table[2]/tbody/tr[1]/td/center/table/tbody/tr[5]/td/p[2]")).Text 

عليكم السلام ورحمة الله وبركاته..
جزاك الله خيرى الدارين أخى الكريم أبو ليلى..
لتضح الرؤية لدى حضرتك وتعرف ما أريده بالضبط :-
أريد إخفاء هذه العناصر المتعلم عليها بالأحمر أى أريد إخفاء أى
شيئ داخل الصحفة ماعدا المقال الموجود فى الوسط...
فأنا بقوم بجلب جميع روابط الموقع هنا
http://www.saaid.net/twitter/q.htm
داخل الليست بوكس وحينما بضغط على أى رابط منهم
ينقلنى الى الصفحة المرادة داخل أداة الويب براوزر

وهذا مشروع بسيط  فى المرفقات لتفهمنى أكثر وأعتذر لك.







RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو ليلى - 29-12-19

السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
عبر استخدام HtmlAgilityPack نجلب محتوى العقدة المحددة عبر تمرير Xpath كما سبق.
حيث ان Selenium ستقوم بفتح نافذة في المتصفح و نحن لا نريد ذلك.
اسوء ما في الامر هو هذه الاداة العجوز Web Browser الخاصة باللغة لا تمكنك من الوصول الى غايات كثيرة.
على اي حال تم تنفيذ المطلوب مع المحافظة قدر الامكان على الكود الموجود.
الطرقة تتبع منهج Async Await لمحاولة تلافي مشكلة تحميل الصفحات قدر الامكان.
اذا رايت ان هناك شرحاً مطلوب فقط اخبرنا, لان الكود بسيط و المكتبة معروفة و مشهورة.
بالتوفيق.


RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو روضة - 29-12-19

(29-12-19, 07:17 PM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
عبر استخدام HtmlAgilityPack نجلب محتوى العقدة المحددة عبر تمرير Xpath كما سبق.
حيث ان Selenium ستقوم بفتح نافذة في المتصفح و نحن لا نريد ذلك.
اسوء ما في الامر هو هذه الاداة العجوز Web Browser الخاصة باللغة لا تمكنك من الوصول الى غايات كثيرة.
على اي حال تم تنفيذ المطلوب مع المحافظة قدر الامكان على الكود الموجود.
الطرقة تتبع منهج Async Await لمحاولة تلافي مشكلة تحميل الصفحات قدر الامكان.
اذا رايت ان هناك شرحاً مطلوب فقط اخبرنا, لان الكود بسيط و المكتبة معروفة و مشهورة.
بالتوفيق.


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


كود :
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
       On Error Resume Next
       For Each input As HtmlElement In WebBrowser1.Document.GetElementsByTagName("td")
           If input.GetAttribute("width") = ("130") Then
               input.Style = "visibility:hidden;"
           End If
       Next
       For Each input As HtmlElement In WebBrowser1.Document.GetElementsByTagName("td")
           If input.GetAttribute("width") = ("149") Then
               input.Style = "visibility:hidden;"
           End If
       Next
       For Each input As HtmlElement In WebBrowser1.Document.GetElementsByTagName("tbody")
           If input.GetAttribute("className") = ("style7") Then
               input.Style = "visibility:hidden;"
           End If
       Next
       For Each input As HtmlElement In WebBrowser1.Document.GetElementsByTagName("img")
           If input.GetAttribute("src").Contains("twitter.jpg") Then
               input.Style = "visibility:hidden;"
           End If
       Next
       Timer1.Stop()
       WebBrowser1.Visible = True
   End Sub


السؤال الآن هو من أين أتيت بهذا الXpath ؟ أين من أى منطقة داخل الصفحة 
حتى يتسنى لى التعامل مع أى موقع فيما بعد
//table/tbody/tr/td[3]/center/table[2]/tbody/tr[1]



RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو ليلى - 29-12-19

السلام عليكم و رحمة الله و بركاته
شكراً لك على كلماتك اخي ابو روضة.
صراحة القيام بشرح للعملية يحتاج الى تسجيل فيديو و رفعه لكن النت لدي ضعيف و لا يحتمل.
العملية بسيطة جداً , فقط اضع لك هذا الفيدو البسيط و يوجد فيدوهات كثيرة يمكنك مراجعتها حتى تتقن العملية.
https://www.youtube.com/watch?v=jSiYpmvA50A
بالنسبة للمسار الذي وضعته في برنامجك تم ازالة كل شيئ قبل كلمة table و الابقاء على باقي المسار , حيث المكتبة HtmlAgilityPack لها طريقة خاصة بالتعامل , بينما نفس المسار كامل يعمل مع Selenium و هو المسار المذكور في الرد الاول.


RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو روضة - 29-12-19

(29-12-19, 09:45 PM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
شكراً لك على كلماتك اخي ابو روضة.
صراحة القيام بشرح للعملية يحتاج الى تسجيل فيديو و رفعه لكن النت لدي ضعيف و لا يحتمل.
العملية بسيطة جداً , فقط اضع لك هذا الفيدو البسيط و يوجد فيدوهات كثيرة يمكنك مراجعتها حتى تتقن العملية.
https://www.youtube.com/watch?v=jSiYpmvA50A
بالنسبة للمسار الذي وضعته في برنامجك تم ازالة كل شيئ قبل كلمة table و الابقاء على باقي المسار , حيث المكتبة HtmlAgilityPack لها طريقة خاصة بالتعامل , بينما نفس المسار كامل يعمل مع Selenium و هو المسار المذكور في الرد الاول.


المشكلة أستاذى أننى بفضل الله بعرف التعامل جيدا مع هذه المكتبة ولهذا سألت حضرتك.
لآن مثلا الباس هو //*[@id="AutoNumber1"]/tbody/tr[13]/td/span/font/span/a
طبعا حذفت الرقم 13 حتى يأتى بكل الروابط لكن حينما أضغط عليها فى الليست بوكس بيظهر خطأ
وأن الرابط خطأ


فهل تم أخذ المسار من هذه الصفحة أم من صفحة المقال نفسه ؟
وسمحنى أخى على تعبك.

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



RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو ليلى - 29-12-19

الاخ ابو روضة,
المسار تم اخذه من صفحة (صفحة مقال) و تحديداً من الصفحة اللي انت واضع رابطها في بداية السؤال
http://www.saaid.net/twitter/216.htm
و نظراً لان القالب موحد في جميع الصفحات فالمسار ينطبق على كل الدروس فقط ما يختلف هو رابط الصفحة.


RE: عرض جزء محدد من الصفحة داخل اداة ويب براوزر - ابو روضة - 29-12-19

(29-12-19, 10:05 PM)ابو ليلى كتب : الاخ ابو روضة,
المسار تم اخذه من صفحة (صفحة مقال) و تحديداً من الصفحة اللي انت واضع رابطها في بداية السؤال
http://www.saaid.net/twitter/216.htm
و نظراً لان القالب موحد في جميع الصفحات فالمسار ينطبق على كل الدروس فقط ما يختلف هو رابط الصفحة.



ربنا يسعدك أخى الكريم ويبارك بعمرك ويزيدك علماً.