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



الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5
#2
السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
بعد الاطلاع على الصفحة , 
الصفحة تحتوي على عدة جداول داخلها,و الجزء المظلل بالاصفر لديك يمثل جدول من 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 
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: sofiane-phy , ابو روضة , asemshahen5 , محمد كريّم
#3
(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 

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

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






الملفات المرفقة
.rar   إشراقات قرآنية.rar (الحجم : 96.76 ك ب / التحميلات : 9)
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابو ليلى , ابو ليلى
#4
السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
عبر استخدام HtmlAgilityPack نجلب محتوى العقدة المحددة عبر تمرير Xpath كما سبق.
حيث ان Selenium ستقوم بفتح نافذة في المتصفح و نحن لا نريد ذلك.
اسوء ما في الامر هو هذه الاداة العجوز Web Browser الخاصة باللغة لا تمكنك من الوصول الى غايات كثيرة.
على اي حال تم تنفيذ المطلوب مع المحافظة قدر الامكان على الكود الموجود.
الطرقة تتبع منهج Async Await لمحاولة تلافي مشكلة تحميل الصفحات قدر الامكان.
اذا رايت ان هناك شرحاً مطلوب فقط اخبرنا, لان الكود بسيط و المكتبة معروفة و مشهورة.
بالتوفيق.


الملفات المرفقة
.rar   GetContentWithHtmlAgilityPak.rar (الحجم : 126.52 ك ب / التحميلات : 9)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: ابو روضة , ابو روضة , محمد كريّم , asemshahen5
#5
(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]
الرد }}}
تم الشكر بواسطة: ابو ليلى , asemshahen5
#6
السلام عليكم و رحمة الله و بركاته
شكراً لك على كلماتك اخي ابو روضة.
صراحة القيام بشرح للعملية يحتاج الى تسجيل فيديو و رفعه لكن النت لدي ضعيف و لا يحتمل.
العملية بسيطة جداً , فقط اضع لك هذا الفيدو البسيط و يوجد فيدوهات كثيرة يمكنك مراجعتها حتى تتقن العملية.
https://www.youtube.com/watch?v=jSiYpmvA50A
بالنسبة للمسار الذي وضعته في برنامجك تم ازالة كل شيئ قبل كلمة table و الابقاء على باقي المسار , حيث المكتبة HtmlAgilityPack لها طريقة خاصة بالتعامل , بينما نفس المسار كامل يعمل مع Selenium و هو المسار المذكور في الرد الاول.
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: ابو روضة , asemshahen5 , asemshahen5
#7
(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 حتى يأتى بكل الروابط لكن حينما أضغط عليها فى الليست بوكس بيظهر خطأ
وأن الرابط خطأ


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

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



ربنا يسعدك أخى الكريم ويبارك بعمرك ويزيدك علماً.
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابو ليلى


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] كيفية انشاء فورم داخل مشروعى عاصم النجار 2 304 05-01-24, 12:36 AM
آخر رد: HALIM ELEULMA
  حماية عمود داخل ورقة الاكسل العيدروس 3 190 05-01-24, 12:21 AM
آخر رد: HALIM ELEULMA
  [VB.NET] استخلاص جزء محدد من نص وإضافته إلى بداية النص ؟ AmeenRashed 2 213 02-01-24, 10:06 AM
آخر رد: AmeenRashed
  [VB.NET] حذف اكثر من سطر محدد في جرد فيو h2551996 3 439 25-11-23, 12:30 PM
آخر رد: h2551996
  هل الداتا قراد فيو تسمح بتعدد الاسطر داخل الخلية عند جلب بيانات نصية طويله من قاعدة ب khalidalwdi 3 460 10-11-23, 11:08 AM
آخر رد: khalidalwdi
  يوجد مشكلة عند تحميل البيانات فى كمبوبوكس داخل داتا جريد new_programer 2 473 17-10-23, 06:51 PM
آخر رد: new_programer
  برمجة اداة BindingNavigator salah525 3 308 29-09-23, 07:14 PM
آخر رد: salah525
  مشكلة مع اداة AdobePDF strongriseman 2 240 10-09-23, 11:46 AM
آخر رد: strongriseman
  اداة WebBrowser onejan1977 1 267 26-08-23, 06:53 PM
آخر رد: Taha Okla
  اريد اضافة متغيراخر داخل Listbox1 احتاج تعديل بسيط moh61 0 349 05-08-23, 02:29 PM
آخر رد: moh61

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


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