تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 14

نام تاپيک: درخواست برنامه طراحی یک موتور جستجو با C#.Net

  1. #1
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض درخواست برنامه طراحی یک موتور جستجو با C#.Net


    سلام به همه دوستان
    من قراره یه پروژه به زبان C#.netبنویسم که موضوعش طراحی یک موتور جستجوست
    اگه کسی می تونه کمکم کنه،یکدنیا ممنون

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    اگر منظورتان موتورهای جستجو وب است، اصولش ساده است و پیاده سازیش هم ساده است ولی حجم کد نویسی زیادی دارد.

    اولین چیز نیاز به یک روبات اسکن کننده است.
    شما باید صفحات اینترنت را به صورت متنی دانلود کنید (مثلاً با کلاسس System.Net.WebClient) و سپس:
    1) این متن html را پردازش کنید و به طرز مناسبی که بعداً جستجوی سریعی داشته باشد، همراه با لینکش در دیتابیس ذخیره کنید
    2) این متن html را پردازش کنید و هایپرلینک ها به صفحات دیگر را پیدا کنید، این هایپرلینک ها هدف بعدی جستجو هستند.
    یعنی شما با رفتن به هر صفحه html آدرس چن و شاید چند ده صفحه دیگر را پیدا کنید.

    باید مراقب باشید صفحه ای دوبار اسکن نشود و یک حلقه بینهایت در برنامه پیش آید،
    باید به فکر آپدیت کردن اطلاعات صفحات هم باشید و طبق یک برنامه زمان بندی اطلاعات صفحات را مجدداً در دیتابیس تان refresh کنید

    در سمت دیگر هم باید یک ایندکس قوی و کد مناسب برای جستجوی کلمات مورد نظر کاربر از داخل دیتابیس و یافتن لینک صفحات داشته باشید.

  3. 6 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    داره خودمونی میشه r.gh45's Avatar
    تاريخ عضويت
    Jul 2008
    پست ها
    75

    پيش فرض

    سلم می بخشید میشه یکمی بیشتر در مورد نحوه اسکن کردن صفحات توضیح بدید اگه میشه یک کد نمونه هم بزارین.
    یک سوال دیگه آیا میشه یک برنامه توی وب نوشت که مثلا توی صفحات خاصی یک کاری بکنه . مثلا ارسال پیام.

  5. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    انجام این عمل بسیار حساس است و کد زیاد و دقیقی میخواهد که خیلی شبیه Parser های XML است ولی متاسفانه Html کمی بی قانون است و زیاد قوانین XML را رعایت نمیکند، مثلاً تگ <br> به جای </br> یا ساختار خیلی از صفحات وب مشکل دارد و شاید تگ td باز باشد که <td/> نداشته باشد و یا ....

    در نتیجه باید یک کد دستی داشته باشیم که کاراکتر به کاراکتر html را بخواند و تفسیر کند و حتی الممکن تمام کار را در یک بار خواندن و مرور متن انجام دهد.

    البته میتوان با کمی دردسر از هسته DOM مرورگر هایی مثل IE هم استفاده کرد ولی در دنیای واقعی و برای مصرف یک سایت جستجو فکر نکنم سرعت مناسبی داشته باشد و ساخت همان یک کد خوانده یک مروره خیلی بهتر است.

    من فقط یک کد بسیار بسیار بسیار ساده و البته نه چندان صحیح برایتان نوشتم.
    این کد فقط تگهای a را اسکن میکند و لینک تمام صفحاتدیگر را پیدا میکند.
    این کد خلی مشکل دارد ولی در عوض ساده و کوتاه و قابل فهم است.
    (مثلاً اگر در خصیصه href و قبل یا بعد از = یک یا چند فاصله باشد داشته باشد، کد به مشکل میخورد و ...)
    باید توجه داشتکه از Scan محتویات غیر متنی zip و pdf و jpg و... و... و... در کدها جلوگیری کرد.

    شما میتوانید به جای Urls.Add این مقادیر را به یک ListBox و یا با یک Enter به یک TextBox اضافه کنید. (در حالت واقعی این کار روی دیتابیس انجام میشود.)

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در آخر توجه داشته باشید که با احتصاب جلوگیری از مرور مجدد یک صفحه، میتوان متد Scan را برای صفحات جدید یافته شده نیز اجرا کرد.
    این کار به صورت یک سرطان شاخه درختی رشد خواهد کرد و ظرف مدت کوتاهی به سایتهای دیگر و میلیون و میلون ها و میلیارد ها لینک خواهد رسید و تقریباً تمام شدنی برای من مفروض نیست. !!!


    قسمت دوم سوالتان را اصلاً متوجه نشدم، مثلاً شما صفحه site.com/file.htm را پیدا کردید، خوب چه پیامی میخواهید بفرستید؟

  6. 4 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  7. #5
    داره خودمونی میشه r.gh45's Avatar
    تاريخ عضويت
    Jul 2008
    پست ها
    75

    پيش فرض

    سلام
    منونم از اینکه جواب دادید.
    برای قسمت دوم سوال منظورم اینکه مثلا ربات ما به صورت خدکار در یک سایت ثبت نام کنه (البنه میدونم این ربات باید خیلی هشمند باشه تا بتونه به تور مثال textbox مربوط به نامو پیدا کنه ولی برای شروع ما فرض می کنیم این فرم در تمام ثایت ها یکسان تعریف شده مثلا textbox1 مربوط به نام است.)
    ممنون
    Last edited by r.gh45; 21-09-2008 at 09:34.

  8. #6
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    برای قسمت دوم سوال منظورم اینکه مثلا ربات ما به صورت خدکار در یک سایت ثبت نام کنه (البنه میدونم این ربات باید خیلی هشمند باشه تا بتونه به تور مثال textbox مربوط به نامو پیدا کنه ولی برای شروع ما فرض می کنیم این فرم در تمام ثایت ها یکسان تعریف شده مثلا textbox1 مربوط به نام است.)
    در دید اول شاید ساده باشد ولی خیلی حالت خاص دارد و حتی در شرایط فیلدهای مساوی هم شاید مجبور شویم برای هر آدرسی کد را عوض کنیم، برای ثبت نام چندان کار امد نیست، مگر اینکه بخواهید یک برنامه مخرب اجرا کنید و تعداد کثیری را ثبت نام کند!!!!
    یا اینکه برای صفحات دانلود برخی سایت، کاری کنید که زمان انتظار از بین برود و...
    صفحه اگر کد js داشته باشد، باز کار سخت میشود، یعنی دکمه اصلی به جای submit یک کد js را اجرا کند، بعد باید بشنیم ببینیم کد js چه کار دارد میکند....
    اگر page مورد نظر اعتبار سنجی تصویری داشته باشد (تصویر یک نوشته) دیگر کار غیر ممکن میکند، چون این نوشته های تصویر شده اغلب طوری هستند که بهترین OCR ها هم نمیتوانند از پس شان بر آیند...

    در کل خیلی به محتویات صفحه وابسته است.

  9. #7
    داره خودمونی میشه r.gh45's Avatar
    تاريخ عضويت
    Jul 2008
    پست ها
    75

    پيش فرض

    بازهم منونم آقای h2 . من قصد نوشتن کد مخرب ندارم این یک برنامست که به من سفارش دادن و بیشتر جنبه تبلیغاتی داره . فقط اگه شما لطف کنید و یک کد نمونه دیگه در این باره برای من بزارین ممنون میشم.

  10. #8
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    13 پر کردن مقادیر فرمهای وبی و کلیک دکمه ها ...

    سلام
    اگر فرض کنیم یک فرم ساده با یک TextBox و Button به فرمت زیر داشته باشید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یا html زیر باشد، با هر زبان سمت سرور...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    آنگاه برای پر کردن TextBox1 با مقدار Value1 و کلیک کردن Button1 و گرفتن html نتیجه، میتوان کد زیر را اجرا کرد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همانطور که گفتم اجرا شدن صحیح دستورات بسیار بسیار به صفحه حساس است.
    مثلاً در صفحات aspx
    - برای اتفاق افتادن رویدا کلیک معمولاً باید EVENTTARGET__ را هم اضافه کرد تا سوییچر داخلی فعال شود.
    - شاید نیاز باشد گزینه EnableEventValidation برای page مربوطه False شود، چون asp.net مثل بقیه زبانهای سمت سرور چندان بی در و پیکر نیست و مدیریت شدیدی روی درخواستها دارد، معمولاً به صورت داخلی رویدادها را اعتبار سنجی میکند.

    ولی در مورد صفحات دیگر زبانهای سروری این دو نکته وجود ندارد.

    در کل اگر میخواهید، میتوانید کد فوق را به عنوان یک یادگیری و سرنخ در نظر بگیرید و سپس و بیشک باید آنرا بسیار توسعه بدهید.

  11. 5 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  12. #9
    داره خودمونی میشه r.gh45's Avatar
    تاريخ عضويت
    Jul 2008
    پست ها
    75

    پيش فرض

    سلام خیلی لطف کردین جناب h2 از اینکه وقت گزاشتین ممنون.اومید وارم با امامتون حضرت علی محشور بشید

  13. #10
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ...اومید وارم با امامتون حضرت علی محشور بشید
    یک چیزی میگفتید که حداقل یک تلیارد ام احتمال داشته باشه .... !

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •