![]() |
|
[VB.NET] داتا جريت فيو - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] داتا جريت فيو (/showthread.php?tid=30537) الصفحات:
1
2
|
RE: داتا جريت فيو - سامي محمد - 28-07-19 الكود باختصار انشأنا متغير من نوع WebRequest من ااجل الوصول إلى سورس كود الصفحة ، ولأن الــ WebRequest لا توجد بها خاصية للوصول الى السورس قمنا بتمرير الناتج من ذلك الرابط إلى المتغييرين التاليين HttpWebResponse و Stream كل هذ من اجل الوصول الى سورس كود الصفحة وبالإمكان الاستغناء عن الثلاثة السابقة باستخدام WebClient هذه توصلك إلى السورس مباشرة ولكن مع الاسف لا تدعم اللغة العربية فستجد أي حرف عربي تحول الى علامة استفهام بعد ذلك انشأنا متغير R من اجل قراءة النص الذي تم الحصول عليه من RD بعدها انشأن متغير نصي S وقمنا بقراءة النص من اوله الى آخرة R.ReadToEnd هذه العبارة (\r|\n) تعني فواصل الاسطر وكما ترى قمنا باستبدالها بلا شيء لان فواصل الاسطر قد تعيق عملية البحث ثم بعد ذلك S = Regex.Replace(S, "\s+", Space(1)) قمنا باستبدال المسافات بمسافة واحدة فقط هذا الرمز \s يعني مسافة وعلمة الــ + تعني تكرار هذه المسافة ، لو كان هناك مسافتان او ثلاث او 10 سيتم حذفها واستبدالها بمسافه واحدة فقط وهذا كلة من اجل الوصول الى عملة بحث دقيقة في النص المستخلص Dim M As MatchCollection بعد ذلك قمنا بأنشاء المتغير M من أجل عملية البحث المتعدد النتائج في النص M = Regex.Matches(S, "<meta\s*name=""description""\s*content=""(\d+,?\d+).+? .+?)"".+dir=""ltr"">(.+?)</strong>")هذه العبارة : "<meta\s*name="" موجودة في سورس كود الصفحة ماعدى \s* والتي تعني احتمال وجود مسافة و بالامكان حذفها واستبدالها بمسافة عادية وكذلك هذه العبارة : description""\s*content= الــ (\d+,?\d+) تمثل المبالغ 1,500 ووضعنا خلف الفاصلة استفهام يعني ان الفاصلة اختيارية ان وجدها كان بها وان كان المبلغ بلا فاصلة فلا يتم تجاهلة () القوسين الذي تم احاطة العددين بهما هو لحفظها في الذاكرة وهي التي ستمثل القروب الاول بعد ذلك M(0).Groups(1).Value طلبنا منه البحث عن أي شي يقع بعد العددين بهذا التعبير .+?: الى ان يصل الى النقطتين : ولكن لو كان هناك في النص نقطتين أخرى سيتم الوصول اليها ولكن عندما وضعنا الاستفهام خلف النقطة فهذا يلزم البرنامج بالوقوف عند اول نقطتين ( يقابلهابعد ذلك طلبنا منها ان يبحث عن أي شي بعد النقطتين بها التعبير (.+?) وايضا اتبعنا عملية التكرار بالاستفهام لكي يقف عن اول نتيجة بحث يجدها ...... وكذلك باقي الكود ولكي تفهم الموضوع جيدا راجع الــ Regex وان شاء الله ستفهم ما اقصده بهذا الكلام ----- آسف ان كان الشرح غير واضح RE: داتا جريت فيو - سعود - 28-07-19 حقل الرقم بالصفحة يحتاج نقر عليه ليظهر الرقم واظن يحتاج ويب براوزر. RE: داتا جريت فيو - AAAAAAAAA - 28-07-19 (28-07-19, 06:39 PM)سامي محمد كتب : وبالإمكان الاستغناء عن الثلاثة السابقة باستخدام WebClient هذه توصلك إلى السورس مباشرة كود : Dim wc As New WebClient()كود : Dim s As Stringكود : Dim s As Stringكود : Dim s = New WebClient() With {.Encoding = Encoding.UTF8}.DownloadString("http://website")RE: داتا جريت فيو - bakriano30@yahoo.com - 29-07-19 (28-07-19, 08:30 PM)سعود كتب : حقل الرقم بالصفحة يحتاج نقر عليه ليظهر الرقم واظن يحتاج ويب براوزر. طب كيف يتم ذلك تلقائي انا رأيتها في اكثر من برنامج يظهر الرقم عادي (28-07-19, 08:30 PM)سعود كتب : حقل الرقم بالصفحة يحتاج نقر عليه ليظهر الرقم واظن يحتاج ويب براوزر. طب كيف يتم ذلك تلقائي انا رأيتها في اكثر من برنامج يظهر الرقم عادي RE: داتا جريت فيو - سعود - 29-07-19 إقتباس :طب كيف يتم ذلك تلقائي انا رأيتها في اكثر من برنامج يظهر الرقم عاديوالله جالس احاول ومفيش فايدة اذكر الاخ ابوروضة ظل يبحث بالموضوع واظن لديه معلومة والله اعلم. RE: داتا جريت فيو - bakriano30@yahoo.com - 29-07-19 (29-07-19, 06:16 AM)سعود كتب :إقتباس :طب كيف يتم ذلك تلقائي انا رأيتها في اكثر من برنامج يظهر الرقم عاديوالله جالس احاول ومفيش فايدة طب اخي سعود اتمني ان تنظر الي اخر موضوع لي بخصوص ارسال البريد وتعطيني من خبرتك الثمينه |