نمایش نتایج 1 تا 10 از 10

نام تاپیک: بدست آوردن لینک های داخلی

  1. #1

    بدست آوردن لینک های داخلی

    سلام . من میخوام از این کد برای بدست آوردن لینک های داخلی یک سایت استفاده کنم
    List<string> links = new List<string>();
    foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
    links.Add("http://mywebsite.com"+link.InnerText);
    }

    یه شخصی تو این لینک نوشته ، رفرنس HtmlAgilityPack به پروژه اضافه کردم آ ؛ اما توفیری نداشت . راستی راه داره بگیم فقط لینک صفحات رو برگردن و به لینک هایی
    که با فایل های اپلود شده داخل سایت مرتبط هستن کاری نداشته باش ؟


    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 21:09 عصر

  2. #2
    کاربر دائمی آواتار jeson_park
    تاریخ عضویت
    دی 1387
    محل زندگی
    گچساران
    سن
    33
    پست
    595

    نقل قول: بدست آوردن لینک های داخلی

    ابتدا کل صفحه وب رو بگیرید و توی رشته نگه دارید بعد با عبارات با قاعده لینک رو پیدا کنید

    string urlAddress = "http://google.com";


    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();


    if (response.StatusCode == HttpStatusCode.OK)
    {
    Stream receiveStream = response.GetResponseStream();
    StreamReader readStream = null;


    if (response.CharacterSet == null)
    {
    readStream = new StreamReader(receiveStream);
    }
    else
    {
    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
    }


    string data = readStream.ReadToEnd();


    response.Close();
    readStream.Close();
    }


    string replacement = "<a href=\"$1\">$2</a>";
    Regex rgx = new Regex(pattern);
    string result = rgx.Replace(data , replacement);
    Console.WriteLine("Original String: {0}", data );
    Console.WriteLine("Replacement String: {0}", result)

  3. #3

    نقل قول: بدست آوردن لینک های داخلی

    درود ، جناب jeson_park سپــاسگــــزارم . اما متاسفانه بنده نتوانستم از کد شما خروجی بگیرم .



    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    string urlAddress = "http://google.com";

    string data;
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();


    if (response.StatusCode == HttpStatusCode.OK)
    {
    Stream receiveStream = response.GetResponseStream();
    StreamReader readStream = null;
    if (response.CharacterSet == null)
    {
    readStream = new StreamReader(receiveStream);
    }
    else
    {
    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
    }


    data = readStream.ReadToEnd();


    response.Close();
    readStream.Close();
    }


    string replacement = "<a href=\"$1\">$2</a>";
    Regex rgx = new Regex(pattern);
    string result = rgx.Replace(data, replacement);
    Console.WriteLine("Original String: {0}", data);
    Console.WriteLine("Replacement String: {0}", result);



    }
    }
    }





    باید به جای pattern چی بنویسم که فقط لینک های داخلی یک صفحه وب را نشون بده و مورد دیگر اینکه بنده در درک این شیوه فرمت دادن به رشته ها مشکل دارم ، اگر مقدور هست با Tostring مثال بزنید .


    Replacement String: {0}


    خطا :

    ضمیمه 133038

    آخرین ویرایش به وسیله دکتر بروکی : چهارشنبه 17 تیر 1394 در 18:10 عصر

  4. #4

    نقل قول: بدست آوردن لینک های داخلی

    بنده مشکل را با کد اولیه ای که در پست شماره 1 نوشتم تا حدودی حل کردم ، لکن


    link.InnerText


    به جای اصل لینک ها ، متن لینک ها را برمی گرداند

  5. #5
    کاربر دائمی آواتار jeson_park
    تاریخ عضویت
    دی 1387
    محل زندگی
    گچساران
    سن
    33
    پست
    595

    نقل قول: بدست آوردن لینک های داخلی

    با سلام
     string pattern = @"\b(?:https?://|www\.)\S+\b";

    کد رو تغییر دادم

    string data = null;
    string urlAddress = "www.google.com";




    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();




    if (response.StatusCode == HttpStatusCode.OK)
    {
    Stream receiveStream = response.GetResponseStream();
    StreamReader readStream = null;




    if (response.CharacterSet == null)
    {
    readStream = new StreamReader(receiveStream);
    }
    else
    {
    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
    }




    data = readStream.ReadToEnd();




    response.Close();
    readStream.Close();
    }





    string pattern = @"\b(?:https?://|www\.)\S+\b";


    Regex rgx = new Regex(pattern);
    foreach (Match m in rgx.Matches(data))
    Console.WriteLine("Replacement String: {0}", m.Value.ToString());

  6. #6

    نقل قول: بدست آوردن لینک های داخلی

    شرمنده کردین ، سپاس از مهر بیکران شما ، من با این کد مشکلم حل شد ، صرفا" برای دوستان دیگر که این تاپیک رو مطالعه می کنن ، بهتر دیدم این نکته رو عرض کنم کدی که جناب jeson_park نوشتند ، در خیلی از سایت ها ، لینک های خارجی رو هم برمی گردونه ..

  7. #7

    نقل قول: بدست آوردن لینک های داخلی

    نقل قول نوشته شده توسط دکتر بروکی مشاهده تاپیک
    شرمنده کردین ، سپاس از مهر بیکران شما ، من با این کد مشکلم حل شد ، صرفا" برای دوستان دیگر که این تاپیک رو مطالعه می کنن ، بهتر دیدم این نکته رو عرض کنم کدی که جناب jeson_park نوشتند ، در خیلی از سایت ها ، لینک های خارجی رو هم برمی گردونه ..
    سلام ، شما چطوری از کد استفاده کردین ، تغییرش دادی ؟ چون من کد رو که اقای jeson رو که کپی می کنم همه لینک ها رو بدست نمیاره
    برای تست همینجا دو تا لینک قرارم می دم ، تا ببینم از سورس این پیچ ، اکتسرکت میشه یا نه

    لینک شماره یک برای تست

    لینک شماره دو برای تست

  8. #8

    نقل قول: بدست آوردن لینک های داخلی

    برای این صفحه جواب داد و هر دو لینکی که بالا نوشتم ، اما برای سایت http://www.sheypoor.com تست کردم ، خیلی از لینک ها بدست نیومدن ، مثلا" این لینک
    http://alborz.sheypoor.com/all/c0 هم باید مابین لینک ها بود ولی نیست ، این مساله راه حلی داره ؟

  9. #9
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: بدست آوردن لینک های داخلی

    یه سوال....
    یه سایتی رو در نظر بگیرید که برای استخراج اطلاعات مثلا کد ملی و کد عضویت رو میگیره و اطلاعات رو بر میگردونه... حالا فرض کنید اطلاعات اصلی رو داریم... مشکل استفاده از کپچاس...
    کپچا رو میشه دور زد؟؟

  10. #10
    کاربر دائمی آواتار jeson_park
    تاریخ عضویت
    دی 1387
    محل زندگی
    گچساران
    سن
    33
    پست
    595

    نقل قول: بدست آوردن لینک های داخلی

    دوستانی که با کد من نتیجه نگرفتن باید عبارت با قاعده رو بنا به نیازشون تغییر بدن

تاپیک های مشابه

  1. سوال: بدست آوردن لینک های درون یک وب سایت
    نوشته شده توسط _behnam_ در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: پنج شنبه 21 بهمن 1389, 19:33 عصر
  2. بدست اوردن لینک های موجود در یک صفحه
    نوشته شده توسط ebrahimnowrouzi در بخش VB.NET
    پاسخ: 1
    آخرین پست: چهارشنبه 02 آبان 1386, 10:37 صبح
  3. بدست آوردن جمعه های هر سال
    نوشته شده توسط computer365 در بخش Access
    پاسخ: 1
    آخرین پست: دوشنبه 26 شهریور 1386, 22:29 عصر
  4. بدست آوردن Child های یک Node در یک TreeView
    نوشته شده توسط مطهر در بخش کامپوننت ها و ابزارهای کاربردی در VB6
    پاسخ: 4
    آخرین پست: جمعه 17 مهر 1383, 20:50 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •