تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف نستخلص الرابط من <a class="any" href="link"
#11
حتى اسهل المسالة حاولوا استخلاص الروابط من هذه الصفحة http://vb4arb.com/vb4/forumdisplay.php?65 اقصد روابط المواضيع بحيث استبدلها بروابط عادي لصفحات محملة.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#12
-
أنا جربت وضع On Error Resume Next بعد For Each مباشرة لتلافي الأخطاء.........جرب
تم استخدام Distinct لحذف المكرر.....
كود :
Dim htmldoc As HtmlDocument = New HtmlDocument()
htmldoc.Load("abc.html")

Dim hrefs, classs As New List(Of String)
For Each link As HtmlNode In htmldoc.DocumentNode.SelectNodes("a")
    On Error Resume Next
    hrefs.Add(link.Attributes("href").Value)
    classs.Add(link.Attributes("class").Value)
Next
MsgBox("hrefs:" & vbNewLine & Join(hrefs.Distinct.ToArray, vbNewLine))
MsgBox("classes:" & vbNewLine & Join(classs.Distinct.ToArray, vbNewLine))
الرد }}}
تم الشكر بواسطة:
#13
لا اخي ما ينفع استخدم الطريقة on error لاني اريد البرنامج يعمل بكل مااريد منه.
حاول تقتنص النص من المصدر التالي
كود :
view-source:http://vb4arb.com/vb4/forumdisplay.php?65
حاول تقتنص النصوص بهذا التنسيق
كود :
<a class="title" href="showthread.php?180-قوانين-كتابة-المواضيع" id="thread_title_180">قوانين كتابة المواضيع</a>

اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#14
اظن ساصنع قوالب من عندي....
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#15
-
تم تعديل المثال السابق وذلك باستخدام If HtmlNode.Attributes("...") IsNot Nothing وهي الطريقة الصحيحة في مثل هذه الحالة....تم استخدام Distinct لحذف المكرر.....
كود :
Dim htmldoc As HtmlDocument = New HtmlDocument()
htmldoc.Load("abc.html")

Dim hrefs, classs As New List(Of String)
For Each link As HtmlNode In htmldoc.DocumentNode.SelectNodes("//a")
    If link.Attributes("href") IsNot Nothing Then hrefs.Add(link.Attributes("href").Value)
    If link.Attributes("class") IsNot Nothing Then classs.Add(link.Attributes("class").Value)
Next
MsgBox("hrefs:" & vbNewLine & Join(hrefs.Distinct.ToArray, vbNewLine))
MsgBox("classes:" & vbNewLine & Join(classs.Distinct.ToArray, vbNewLine))
الرد }}}
تم الشكر بواسطة:
#16
بصراحة Regulatexpression فيها مرونة ولكن تحتاج خبرة بكل معايير البحث تم ايجاد المطلوب عبرها.
اما htmlagilitypack فهي رائعة ايضا وكالسابقة تماما لكنها تكون مفيدة اكثر مع الوسوم التي تحتوي id او النودز التي تحتوي فقط على واحد Attributes
كل هذا فقط من تجربتي وليس حصر او تقييم لها وانما لما قدرت عليه.
ولله الحمد تمكنت من تجهيز مشروع خاص لمنتديات vbuletin 4 بقيت التشطيبات الاخيرة.
وفقكم الله لكل مافيه رضاه.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:



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


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