المشاركات : 1,468
المواضيع 351
الإنتساب : Apr 2016
السمعة :
334
الشكر: 3379
تم شكره 2456 مرات في 1124 مشاركات
13-03-21, 04:07 AM
(آخر تعديل لهذه المشاركة : 13-03-21, 05:28 AM {2} بواسطة ابو روضة.)
السلام عليكم ورحمة الله وبركاته....
أخوتى هناك موقع لتحميل الفيديوهات وعملت برنامج فعلا بحمل منه لكن
بالويب براوزر لكنه ثقيل جدا وأحببت جلب الرابط بال HtmlAgilityPack لكن لم ينجح معى هذا الكود
PHP كود :
Dim link As New WebClient link.Encoding = Encoding.UTF8 Dim cr As String = link.DownloadString(TextBox1.Text) Dim dc As New HtmlAgilityPack.HtmlDocument dc.LoadHtml(cr) For Each nood As HtmlAgilityPack.HtmlNode In dc.DocumentNode.SelectNodes("//*[contains(@href,'googlevideo.com/videoplayback?')]") ListBox1.Items.Add(nood.Attributes("href").Value) Next
الموقع هنا
المشاركات : 531
المواضيع 37
الإنتساب : Oct 2019
السمعة :
219
الشكر: 609
تم شكره 1654 مرات في 584 مشاركات
وعليك السلام ورحمة الله وبركاته
جرب هذا الكود
PHP كود :
Dim links As New List(Of String)() Dim htmlDoc As New HtmlAgilityPack.HtmlDocument() htmlDoc.LoadHtml(WebSource) For Each link As HtmlNode In htmlDoc.DocumentNode.SelectNodes("//a[@href]") Dim att As HtmlAttribute = link.Attributes("href") If att.Value.Contains("'googlevideo.com/videoplayback?'") Then links.Add(att.Value) End If Next
المشاركات : 1,468
المواضيع 351
الإنتساب : Apr 2016
السمعة :
334
الشكر: 3379
تم شكره 2456 مرات في 1124 مشاركات
(14-03-21, 04:13 PM)معاند الحظ كتب : وعليك السلام ورحمة الله وبركاته
جرب هذا الكود
PHP كود :
Dim links As New List(Of String)() Dim htmlDoc As New HtmlAgilityPack.HtmlDocument() htmlDoc.LoadHtml(WebSource) For Each link As HtmlNode In htmlDoc.DocumentNode.SelectNodes("//a[@href]") Dim att As HtmlAttribute = link.Attributes("href") If att.Value.Contains("'googlevideo.com/videoplayback?'") Then links.Add(att.Value) End If Next
أهلا بالأخ الغالى معاند الحظ...
للأسف جربته ولم ينفع.
المشاركات : 531
المواضيع 37
الإنتساب : Oct 2019
السمعة :
219
الشكر: 609
تم شكره 1654 مرات في 584 مشاركات
24-03-21, 12:08 AM
(آخر تعديل لهذه المشاركة : 24-03-21, 12:15 AM {2} بواسطة معاند الحظ.)
احيرا وبعد حوسه طويلة احب اقولك اخوي أبو روضة ما عنك وعن استخدام WebBrowser
لان الصفحة تولد الروابط بعد تنفيذ امر او كود معين بها (بصراحة لا ادري ما هو)
لكن بعد البحث الطويل ما لقيت عير هذا الحل وان شاء الله ينفعك
فقط ضع زر و textbox لعنوان الصفحة واخر لـ حفظ الروابط
كود :
Imports HtmlAgilityPack
Imports System.Text
Imports System.Net
Public Class Form
Dim WithEvents wb As New WebBrowser
Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
wb.ScriptErrorsSuppressed = True
Button1.PerformClick()
End Sub
Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
wb.Navigate(New Uri(TextBox1.Text))
End Sub
Private Sub wb_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted
If wb.Document IsNot Nothing Then
For Each link As HtmlElement In wb.Document.Links
If link.GetAttribute("href").Contains("googlevideo.com") Then
rtxt.AppendText(link.GetAttribute("href") & vbNewLine)
End If
Next
End If
End Sub
End Class
المشاركات : 1,468
المواضيع 351
الإنتساب : Apr 2016
السمعة :
334
الشكر: 3379
تم شكره 2456 مرات في 1124 مشاركات
(24-03-21, 12:08 AM)معاند الحظ كتب : احيرا وبعد حوسه طويلة احب اقولك اخوي أبو روضة ما عنك وعن استخدام WebBrowser
لان الصفحة تولد الروابط بعد تنفيذ امر او كود معين بها (بصراحة لا ادري ما هو)
لكن بعد البحث الطويل ما لقيت عير هذا الحل وان شاء الله ينفعك
فقط ضع زر و textbox لعنوان الصفحة واخر لـ حفظ الروابط
كود :
Imports HtmlAgilityPack
Imports System.Text
Imports System.Net
Public Class Form
Dim WithEvents wb As New WebBrowser
Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
wb.ScriptErrorsSuppressed = True
Button1.PerformClick()
End Sub
Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
wb.Navigate(New Uri(TextBox1.Text))
End Sub
Private Sub wb_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted
If wb.Document IsNot Nothing Then
For Each link As HtmlElement In wb.Document.Links
If link.GetAttribute("href").Contains("googlevideo.com") Then
rtxt.AppendText(link.GetAttribute("href") & vbNewLine)
End If
Next
End If
End Sub
End Class
الله يكرم أصلك الطيب أخى الغالى والله وأعتذر تعبتك معايا...
قلت عليك أنك فنان من أول ما تعرفت عليك ودماغك حلوة..
سؤال لو تكرمت :
كيف استخرج أول رابط فقط من الروابط التى تم استخراجها ؟
لآن اريد تحميله .
المشاركات : 531
المواضيع 37
الإنتساب : Oct 2019
السمعة :
219
الشكر: 609
تم شكره 1654 مرات في 584 مشاركات
24-03-21, 01:19 AM
(آخر تعديل لهذه المشاركة : 24-03-21, 01:23 AM {2} بواسطة معاند الحظ.)
أنت على العين وعلى الراس اخوي ابو روضه وما يحتاج تعتذر
واللي سويته أنا شيئ بسيط وسهل .
طريقة استخراج الرابط الاول هى انك تخرج من الحلقه For Each link As HtmlElement
باستخدام Exit For داخل الجملة الشرطية كالتالي
كود :
For Each link As HtmlElement In wb.Document.Links
If link.GetAttribute("href").Contains("googlevideo.com") Then
rtxt.AppendText(link.GetAttribute("href") & vbNewLine)
Exit For
End If
Next
المشاركات : 88
المواضيع 10
الإنتساب : Jul 2020
السمعة :
8
الشكر: 57
تم شكره 109 مرات في 55 مشاركات
إقتباس :كيف استخرج أول رابط فقط من الروابط التى تم استخراجها ؟
استخدم متغير من نوع تكست مثل هذا التعديل لتجلب به أول قيمة فقط من الروابط
PHP كود :
Imports HtmlAgilityPack Imports System.Text Imports System.Net
Public Class Form
Dim WithEvents wb As New WebBrowser Dim n as integer = 0 Dim FirstLink as string
Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load wb.ScriptErrorsSuppressed = True Button1.PerformClick() End Sub
Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click wb.Navigate(New Uri(TextBox1.Text)) End Sub
Private Sub wb_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted If wb.Document IsNot Nothing Then
For Each link As HtmlElement In wb.Document.Links n+=1 If link.GetAttribute("href").Contains("googlevideo.com") Then rtxt.AppendText(link.GetAttribute("href") & vbNewLine) If n=1 then FirstLink = link.GetAttribute("href") End if End If Next End If End Sub End Class
المشاركات : 1,468
المواضيع 351
الإنتساب : Apr 2016
السمعة :
334
الشكر: 3379
تم شكره 2456 مرات في 1124 مشاركات
24-03-21, 01:33 AM
(آخر تعديل لهذه المشاركة : 24-03-21, 01:34 AM {2} بواسطة ابو روضة.)
(24-03-21, 01:19 AM)معاند الحظ كتب : أنت على العين وعلى الراس اخوي ابو روضه وما يحتاج تعتذر
واللي سويته أنا شيئ بسيط وسهل .
طريقة استخراج الرابط الاول هى انك تخرج من الحلقه For Each link As HtmlElement
باستخدام Exit For داخل الجملة الشرطية كالتالي
كود :
For Each link As HtmlElement In wb.Document.Links
If link.GetAttribute("href").Contains("googlevideo.com") Then
rtxt.AppendText(link.GetAttribute("href") & vbNewLine)
Exit For
End If
Next
تسلملى عيونك أخى العزيز ربنا يكرمك ويبارك بعمرك...
تم الحل الحمدلله بفضل الله ثم خبرتك..
(24-03-21, 01:25 AM)أبو عبدالله الحلواني كتب : إقتباس :كيف استخرج أول رابط فقط من الروابط التى تم استخراجها ؟
استخدم متغير من نوع تكست مثل هذا التعديل لتجلب به أول قيمة فقط من الروابط
PHP كود :
Imports HtmlAgilityPack Imports System.Text Imports System.Net
Public Class Form
Dim WithEvents wb As New WebBrowser Dim n as integer = 0 Dim FirstLink as string
Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load wb.ScriptErrorsSuppressed = True Button1.PerformClick() End Sub
Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click wb.Navigate(New Uri(TextBox1.Text)) End Sub
Private Sub wb_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted If wb.Document IsNot Nothing Then
For Each link As HtmlElement In wb.Document.Links n+=1 If link.GetAttribute("href").Contains("googlevideo.com") Then rtxt.AppendText(link.GetAttribute("href") & vbNewLine) If n=1 then FirstLink = link.GetAttribute("href") End if End If Next End If End Sub End Class
ربنا يكرمك ويبارك بعمرك أخى الغالى...
|