تقييم الموضوع :
  • 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 ك ب / التحميلات : 14)
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابو ليلى , ابو ليلى
#4
السلام عليكم و رحمة الله و بركاته
الاخ ابو روضة,
عبر استخدام HtmlAgilityPack نجلب محتوى العقدة المحددة عبر تمرير Xpath كما سبق.
حيث ان Selenium ستقوم بفتح نافذة في المتصفح و نحن لا نريد ذلك.
اسوء ما في الامر هو هذه الاداة العجوز Web Browser الخاصة باللغة لا تمكنك من الوصول الى غايات كثيرة.
على اي حال تم تنفيذ المطلوب مع المحافظة قدر الامكان على الكود الموجود.
الطرقة تتبع منهج Async Await لمحاولة تلافي مشكلة تحميل الصفحات قدر الامكان.
اذا رايت ان هناك شرحاً مطلوب فقط اخبرنا, لان الكود بسيط و المكتبة معروفة و مشهورة.
بالتوفيق.


الملفات المرفقة
.rar   GetContentWithHtmlAgilityPak.rar (الحجم : 126.52 ك ب / التحميلات : 19)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: ابو روضة , ابو روضة , محمد كريّم , 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 , ابو ليلى


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 3,858 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  [VB.NET] استعراض بيانات في Datagridview واضافة جميع البيانات لجدول محدد sql skode 0 489 12-01-25, 12:50 AM
آخر رد: skode
  مشكلة التاريخ اداة DateTimePicker Wolfalwolf20 2 485 06-01-25, 06:14 PM
آخر رد: aljzazy
  استدعاء من جدولين داخل اداه FlowLayoutPanel برجاء الافادة للضرورة جداً modymody300894 7 634 15-11-24, 11:02 AM
آخر رد: modymody300894
  اريد جلب عدد محدد من السجلات من قاعدة بيانات اكسس الى الداتا قراد فيو يوجد مثال khalidalwdi 2 666 12-11-24, 12:19 PM
آخر رد: khalidalwdi
  كتابه عدد معين من الارقام داخل تيكست بوكس modymody300894 3 556 07-11-24, 09:15 PM
آخر رد: modymody300894
  ترتيب شجره الحسابات داخل الجريد فيو modymody300894 2 409 31-10-24, 12:27 PM
آخر رد: modymody300894
Exclamation [VB.NET] ممكن عمل كود لحفظ المكتوب داخل اداة TextBox الورد الصناعي 9 797 17-10-24, 11:43 PM
آخر رد: salamandal
  ارجو المساعدة في كود مقارنة عامود داخل الداتا جريد فيو alachk 11 1,091 11-08-24, 11:44 AM
آخر رد: alachk
  كيف اقوم بتحديث بيانات داخل Datagrid عبر Button moh61 5 471 28-06-24, 12:03 AM
آخر رد: Zuhare

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


يقوم بقرائة الموضوع: