تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] جلب رابط من موقع
#1
السلام عليكم
اريد طريقة لجلب رابط من الصفحة هذه : http://app.live-plus.info/api/channels
هناك عدة روابط في هذه الصفحة كيف بامكاني جلب رابط واحد منهم من يملك الفكرة يرسلها لي وانا سوف افهم من الفكرة وانفذها
الرد }}}
تم الشكر بواسطة: سعود
#2
(23-12-20, 01:58 AM)MaxXx كتب : السلام عليكم
اريد طريقة لجلب رابط من الصفحة هذه : http://app.live-plus.info/api/channels
هناك عدة روابط في هذه الصفحة كيف بامكاني جلب رابط واحد منهم من يملك الفكرة يرسلها لي وانا سوف افهم من الفكرة وانفذها


الرد }}}
#3
(23-12-20, 08:57 AM)alfaiz678 كتب :
(23-12-20, 01:58 AM)MaxXx كتب : السلام عليكم
اريد طريقة لجلب رابط من الصفحة هذه : http://app.live-plus.info/api/channels
هناك عدة روابط في هذه الصفحة كيف بامكاني جلب رابط واحد منهم من يملك الفكرة يرسلها لي وانا سوف افهم من الفكرة وانفذها


شكرا لك ولكني اريد الطريقة بدون استعمال webbrowser
الرد }}}
تم الشكر بواسطة: سعود , ابراهيم ايبو
#4
up up up up
الرد }}}
تم الشكر بواسطة:
#5
(25-12-20, 02:07 PM)MaxXx كتب : up up up up

اظن هذه ستفي بالغرض


كود :
Public Function ExtractLinks(ByVal url As String) As DataTable
       Dim dt As New DataTable
       dt.Columns.Add("LinkText")
       dt.Columns.Add("LinkUrl")

       Dim wc As New WebClient
       Dim html As String = wc.DownloadString(url)

       Dim links As MatchCollection = Regex.Matches(html, "<a.*?href=""(.*?)"".*?>(.*?)</a>")

       For Each match As Match In links
           Dim dr As DataRow = dt.NewRow
           Dim matchUrl As String = match.Groups(1).Value
           'Ignore all anchor links
           If matchUrl.StartsWith("#") Then
               Continue For
           End If
           'Ignore all javascript calls
           If matchUrl.ToLower.StartsWith("javascript:") Then
               Continue For
           End If
           'Ignore all email links
           If matchUrl.ToLower.StartsWith("mailto:") Then
               Continue For
           End If
           'For internal links, build the url mapped to the base address
           If Not matchUrl.StartsWith("http://") And Not matchUrl.StartsWith("https://") Then
               matchUrl = MapUrl(url, matchUrl)
           End If
           'Add the link data to datatable
           dr("LinkUrl") = matchUrl
           dr("LinkText") = match.Groups(2).Value
           dt.Rows.Add(dr)
       Next

       Return dt
   End Function

   Public Function MapUrl(ByVal baseAddress As String, ByVal relativePath As String) As String

       Dim u As New System.Uri(baseAddress)

       If relativePath = "./" Then
           relativePath = "/"
       End If

       If relativePath.StartsWith("/") Then
           Return u.Scheme + Uri.SchemeDelimiter + u.Authority + relativePath
       Else
           Dim pathAndQuery As String = u.AbsolutePath
           ' If the baseAddress contains a file name, like ..../Something.aspx
           ' Trim off the file name
           pathAndQuery = pathAndQuery.Split("?")(0).TrimEnd("/")
           If pathAndQuery.Split("/")(pathAndQuery.Split("/").Count - 1).Contains(".") Then
               pathAndQuery = pathAndQuery.Substring(0, pathAndQuery.LastIndexOf("/"))
           End If
           baseAddress = u.Scheme + Uri.SchemeDelimiter + u.Authority + pathAndQuery

           'If the relativePath contains ../ then
           ' adjust the baseAddress accordingly

           While relativePath.StartsWith("../")
               relativePath = relativePath.Substring(3)
               If baseAddress.LastIndexOf("/") > baseAddress.IndexOf("//" + 2) Then
                   baseAddress = baseAddress.Substring(0, baseAddress.LastIndexOf("/")).TrimEnd("/")
               End If
           End While

           Return baseAddress + "/" + relativePath
       End If

   End Function
الرد }}}
تم الشكر بواسطة: MaxXx
#6
(25-12-20, 03:04 PM)alfaiz678 كتب :
(25-12-20, 02:07 PM)MaxXx كتب : up up up up

اظن هذه ستفي بالغرض


كود :
Public Function ExtractLinks(ByVal url As String) As DataTable
       Dim dt As New DataTable
       dt.Columns.Add("LinkText")
       dt.Columns.Add("LinkUrl")

       Dim wc As New WebClient
       Dim html As String = wc.DownloadString(url)

       Dim links As MatchCollection = Regex.Matches(html, "<a.*?href=""(.*?)"".*?>(.*?)</a>")

       For Each match As Match In links
           Dim dr As DataRow = dt.NewRow
           Dim matchUrl As String = match.Groups(1).Value
           'Ignore all anchor links
           If matchUrl.StartsWith("#") Then
               Continue For
           End If
           'Ignore all javascript calls
           If matchUrl.ToLower.StartsWith("javascript:") Then
               Continue For
           End If
           'Ignore all email links
           If matchUrl.ToLower.StartsWith("mailto:") Then
               Continue For
           End If
           'For internal links, build the url mapped to the base address
           If Not matchUrl.StartsWith("http://") And Not matchUrl.StartsWith("https://") Then
               matchUrl = MapUrl(url, matchUrl)
           End If
           'Add the link data to datatable
           dr("LinkUrl") = matchUrl
           dr("LinkText") = match.Groups(2).Value
           dt.Rows.Add(dr)
       Next

       Return dt
   End Function

   Public Function MapUrl(ByVal baseAddress As String, ByVal relativePath As String) As String

       Dim u As New System.Uri(baseAddress)

       If relativePath = "./" Then
           relativePath = "/"
       End If

       If relativePath.StartsWith("/") Then
           Return u.Scheme + Uri.SchemeDelimiter + u.Authority + relativePath
       Else
           Dim pathAndQuery As String = u.AbsolutePath
           ' If the baseAddress contains a file name, like ..../Something.aspx
           ' Trim off the file name
           pathAndQuery = pathAndQuery.Split("?")(0).TrimEnd("/")
           If pathAndQuery.Split("/")(pathAndQuery.Split("/").Count - 1).Contains(".") Then
               pathAndQuery = pathAndQuery.Substring(0, pathAndQuery.LastIndexOf("/"))
           End If
           baseAddress = u.Scheme + Uri.SchemeDelimiter + u.Authority + pathAndQuery

           'If the relativePath contains ../ then
           ' adjust the baseAddress accordingly

           While relativePath.StartsWith("../")
               relativePath = relativePath.Substring(3)
               If baseAddress.LastIndexOf("/") > baseAddress.IndexOf("//" + 2) Then
                   baseAddress = baseAddress.Substring(0, baseAddress.LastIndexOf("/")).TrimEnd("/")
               End If
           End While

           Return baseAddress + "/" + relativePath
       End If

   End Function

شكرا لك ولكني لم استطع استخدامه انت اعطيتني function فقط كيف استعمله هل ممكن ولو مشروع بسيط اخي من فضلك

واللي فهمته من الكود انه يقوم باستخراج جميع الروابط انا اريد استخراج رابط واحد فقط
لقد وجدت هذا الموضوع http://vb4arb.com/vb/showthread.php?tid=36742
ولكني للاسف لم استطع تطبيقه انا اريد مثل هذه الفكرة
هل بالامكان ذلك
الرد }}}
تم الشكر بواسطة:
#7
up up up up
الرد }}}
تم الشكر بواسطة:
#8
up up up up
الرد }}}
تم الشكر بواسطة:
#9
up up up up
الرد }}}
تم الشكر بواسطة:
#10
وعليك السلام ورحمة الله وبركاته
با اخي العزيز.
القيت نظرة على الكود الذي اعطاك اياه اخونا alfaiz678 جزاه الله خير 
ورغم اني لم اقم بتجربته لكني اجزم انه هو ماتريد بالضبط
لكن اين المشكلة هنا؟
المشكلة انك لم تجرب الكود بل ايضا  يبدو انك لاتعرف طريقة استخدامه  . 
لذا خذ مني نصيحة هي ان تحاول تبسط الاشياء يعني انت تريد كود يجلب الروابط من الانترنت
واشترطت انك لاتريد سوى رابط واحد 
الان كل ماعليك فعله في الكود هو ان تخرج من الحلقة اذا استخرجت الرابط الذي تريده

ولنفترض انك تريد هذا الرابط :http://www.microsoft.com/vs2020download

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

اليك هذا المثال البسيط
افتح مشروع جديد وضع على الفورم صندوق نص وسمه rtxt وضع ايضا زر
الان افتح محرر الكود والصق الكود التالي

PHP كود :
Imports System.Net
Imports System
.Text.RegularExpressions

Public Class Form1
    Dim WithEvents wc 
As New WebClient


    
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        Dim url 
As String "https://marketplace.visualstudio.com/"
        wc.DownloadStringAsync(New Uri(url))
    End Sub


    
Private Sub wc_DownloadStringCompleted(sender As ObjectAs System.Net.DownloadStringCompletedEventArgsHandles wc.DownloadStringCompleted
        Dim pattern 
As String "(?:(?:https?|ftp):\/\/|\b(?:[a-z\d]+\.))(?:(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))?\))+(?:\((?:[^\s()<>]+|(?:\(?:[^\s()<>]+\)))?\)|[^\s`!()\[\]{};:'"".,<>?«»""‘’]))?"

        Dim mx As Match
        
For Each mx In Regex.Matches(e.ResultpatternRegexOptions.Multiline RegexOptions.Compiled)

            rtxt.AppendText(mx.Value vbNewLine)

        Next
    End Sub

End 
Class 

عند الضغط على الزر تقوم الاداة wc وهي من فئة webclient بتحميل شفرة الموقع
وعند اكتمال تحميل الشفرة وضعت حلقة دوران تتحقق او تبحث عن الروابط ضمن شفرة الموقع
التي تم تحميلها وكل رابط يوجد في شفرة الموقع سيتم اضافته الى صندوق النص rtxt

يبقى عليك فقط ان تتحقق من كل رابط فيما اذا كان هو الرابط المطلوب

وسلااااام عليك خيووو

بالتوفيق

الرد }}}
تم الشكر بواسطة: MaxXx


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اختبار الفاتورة في موقع يطلع خطأ thepast 0 217 21-12-23, 12:06 PM
آخر رد: thepast
  تحديد موقع ملف user.config واعدة توجيهه لموقع آخر Mohammed Nafa 3 442 07-11-23, 10:12 PM
آخر رد: Mohammed Nafa
  ما هو أفضل موقع موثوق فيه ترشحونه لربط قاعدة البيانات عليه أونلاين hazim1 1 391 16-09-23, 10:32 AM
آخر رد: Amir_Alzubidy
  تنزيل ملف من موقع علي الانترنت ؟ Abdh111 12 1,299 04-05-23, 07:22 PM
آخر رد: ramy alfoly
  د عند وضع رابط موقع على TEXBOX يفتح روابط موجودة في موقع M3U على LISTVIEW HASNI14 8 884 02-02-23, 06:51 PM
آخر رد: trakktour
  ازاي اسحب رابط من سطر كامل Meroo1809 7 824 23-01-23, 11:08 PM
آخر رد: Meroo1809
  مطلوب رابط لبرنامج Advanced Installer (كامل) mmaalmesry 10 1,353 12-10-22, 05:15 AM
آخر رد: DR.YASER
Star مطلوب رابط بنامج VB2010 لو سمحتم أبو خالد الشكري 10 1,162 14-07-22, 06:22 AM
آخر رد: سعود
  [سؤال] السلام عليكم ممكن رابط تحميل كريستال ريبورت للفيجوال بيسك 2013 حسن الجلب 1 1,182 27-05-22, 04:58 PM
آخر رد: essawq
  أستخراج نص من موقع ويب aldery 2 1,048 06-05-22, 08:12 PM
آخر رد: aldery

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


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