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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=19630)



احضار بيانات من موقع - الحزين اوى - 13-03-17

السلام عليكم 
اريد كود لاحضار سعر  بيع و شراء الدولار من موقع البنك الي شبكة الجريد فيو .

مع خالص الشكر


RE: احضار بيانات من موقع - مساعدة - 13-03-17

السلام عليكم

ضع رابط الموقع المراد احضار المعلومة منه.


RE: احضار بيانات من موقع - الحزين اوى - 13-03-17

تفضل يا اخي 

http://www.nbe.com.eg/ExchangeRate.aspx

وهل يمكن أحضار البيانات من أكثر من موقع 


أريد سعر الدولار في ثلاثة بنوك علي سبيل المثال

http://www.cbe.org.eg/ar/EconomicResearch/Statistics/Pages/ExchangeRatesListing.aspx

http://www.banqueducaire.com/Arabic/MarketUpdates/Pages/CurrencyExchange.aspx


RE: احضار بيانات من موقع - مساعدة - 13-03-17

السلام عليكم

كل موقع له تركيبة تختلف عن غيره

تفضل الكود
كود :
'سعر الشراء
Dim BuyPrice As Double
'سعر البيع
Dim SellPrice As Double

'البنك الأهلي المصري
Dim NationalBankOfEgyptUrl As String = "http://www.nbe.com.eg/ExchangeRate.aspx"
Dim NationalBankOfEgyptPtr As String = "(?<=value=')[\d+\.?]+?(?=' id=""txtBanKNote)"

'البنك المركزي المصري
Dim CentralBankEgyptUrl As String = "http://www.cbe.org.eg/ar/EconomicResearch/Statistics/Pages/ExchangeRatesListing.aspx"
Dim CentralBankEgyptPtr As String = "(?<=<td>)[\d+\.?]+?(?=</td>)"

'بنك القاهرة
Dim BanqueDuCaireUrl As String = "http://www.banqueducaire.com/Arabic/MarketUpdates/Pages/CurrencyExchange.aspx"
Dim BanqueDuCairePtr As String = "(?<=<td class=""ms-vb"">)[\d+\.?]+?(?=</td>)"

Function GetData(url As String, ptr As String) As Boolean
    Try
        Using wc As New Net.WebClient() With {.Encoding = System.Text.Encoding.UTF8}
            Dim s As String = wc.DownloadString(url)
            Dim ms As MatchCollection = Regex.Matches(s, ptr)
            If ms.Count Then
                BuyPrice = ms(0).Value
                SellPrice = ms(1).Value
            End If
        End Using
        Return True
    Catch ex As Exception
        MsgBox(ex.Message)
        Return False
    End Try
End Function

وطريقة التعامل مع الكود
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If GetData(NationalBankOfEgyptUrl, NationalBankOfEgyptPtr) Then
        TextBox1.Text = BuyPrice
        TextBox2.Text = SellPrice
    End If
End Sub

كما ترى لكل بنك له Url وPtr تستطيع التغيير بينها في الكود
على سبيل المثال
غير NationalBankOfEgyptUrl إلى CentralBankEgyptUrl مع تغيير NationalBankOfEgyptPtr إلى CentralBankEgyptPtr


RE: احضار بيانات من موقع - الحزين اوى - 13-03-17

مشكور يا اخي يعطيك العافيه بس كنت اتمني لو تشرح جزء التركيبة بتاعت الموقع علشان لو عاوز اطبقها على مواقع اخري مع جزيل الشكر 
ولو كود أحضار البيانات كلها داخل داتا جريد فيو DataGridView

مع تاريح ووقت اخر تحديث قي الصفحه ايضاَ

مثل فى البنك الاهلى 

أخر تحديث للأسعار بتاريخ : 13/03/2017 10:17:57


RE: احضار بيانات من موقع - السندبااد - 13-03-17

ألف شكر لك أخ مساعدة على الكود الرائع والمميز، لكن لدي سؤال لو تكرمت:
ماذا لو كان في الصفحة عدة جداول؛ مثل هذه الصفحة:
https://sp-today.com

حيث الكلاس الخاص بالجدول الأول هو : table table-hover local-cur
وهنالك كلاس أسعار الذهب: table table-hover gold
وكلاس أسعار العملات الأجنبية: table table-hover global-cur

ولنفرض أنني أريد القيم من جدول أسعار الذهب فقط فكيف أعدل على الجزئية الخاصة بالرابط:
PHP كود :
Dim SpTodayPtr As String "(?<=<strong>)[\d+\.?]+?(?=</strong>)" 

وشكراً لك Smile