PDA

View Full Version : برنامه برای تحلیل محتوای وب سایتها



barnamenevis300
یک شنبه 11 تیر 1391, 21:14 عصر
من یه برنامه ایی مد نظرم هست که بتونه محتوای یک صفحه بخصوص وب رو در هر بازه زمانی معین تحلیل کنه و بعد دستوراتی رو اجرا کنه...
مثلا میخوام برنامه ایی بنویسم که هر نیم ساعت سایت یاهو رو تحلیل کنه و اگه توش مثلا عبارتی مثل IRAN رو پیدا کرد یه سری دستوراتی رو اجرا کنه (مثلا یه صدایی ایجاد کنه)

من تازه وارد هستم و میخوام بدونم یه توابعی برای اینکار وجود دارن؟

barnamenevis300
دوشنبه 12 تیر 1391, 18:38 عصر
کسی نیست کمک کنه؟ خودم یه حدسی میزنم اینه که خود صفحه وب مثل یک xml هست؟

Farshid007
دوشنبه 12 تیر 1391, 21:03 عصر
خوب باید با یه وب بروزر اونو به سایت یاهو وصل کنی و وقتی داکیومنت کامپلیت شد اینوو بنویسی:
if (webBrowser1.Document.Body.InnerText.Contains("IRAN"))
{
//عبارت ایران یافت شد
}
else
{
//عبارت ایران یافت نشد
}

barnamenevis300
دوشنبه 12 تیر 1391, 22:53 عصر
اولا ممنون بعد من یه خورده تازه واردم این جواب تون یه سوال دیگه برام ایجاد کرد اینه که:

webBrowser1.Document.Body.InnerText.Contains("IRA N")

در این عبارت در نهایت تابع contains استفاده میشه حالا من در مورد اینکه این تابع contain عضو کدوم کلاس هست گیج شدم؟
الان webBrowser1 یک نمونه از کلاس webBrowser هست که داده ایی داره به اسم Document حالا چطور این Document که داده هست دارای کلاس به اسم body هست که خودش کلاسی به اسم innertext داره که اون باز خودش contain رو داره!!!

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

Beginner2013
سه شنبه 13 تیر 1391, 05:48 صبح
کلاس WebBrowser دارای عضوی (در اینجا خاصیت) به اسم Document هست که مقدار بازگشتیش یک نمونه از کلاس HtmlDocument هست،اما کلاس HtmlDocument هم به نوبه خودش دارای خاصیتی به نام Body هست که مقدار بازگشتیش یک شئ نمونه از کلاس HtmlElement هست،این کلاس هم که دارای خاصیتی به نام InnerHtml هست که از نوع string هست،اما می دونیم که در C# انواع متغیرها از جمله متغیرهای از نوع string خودشون یک شئ هستن و در واقع میشه گفت مقدار InnerHtml نمونه ای از کلاس String هست و این کلاس هم که متدی به نام Contains دارد که مقداری از نوع bool میگرداند..

barnamenevis300
سه شنبه 13 تیر 1391, 06:23 صبح
فوق العاده بود... حالا منظور از مقدار بازگشتی یعنی چی؟

Farshid007
سه شنبه 13 تیر 1391, 13:42 عصر
مثلا این یه نوع مقدار بازگشتی از نوع int هست
int zero()
{
return 0;
}

barnamenevis300
سه شنبه 13 تیر 1391, 14:59 عصر
این تعریف از مقدار بازگشتی یعنی مورد تابع هست ولی Document مگر تابع هست؟
اجازه بدید من یه خورده قاطی کردم. بزارید اینطوری بپرسم:

الان Document یه نمونه از کلاس HtmlDocument هست؟ و آیا این فرق داره با عبارت اینکه مقدار بازگشتیش یه نمونه از کلاس HtmlDocument هست؟

اگه گزینه ذوم پس جنس خود Document چیه؟

Farshid007
سه شنبه 13 تیر 1391, 19:28 عصر
اینجوری فرض کن
WebBrowser1.Document یه کلاسی هست از زر مجموعه WebBrowser1 که اسمش Document هست و نوع اون HtmlDocument هست
به عکس زیر نگاه کن:
89152

Farshid007
سه شنبه 13 تیر 1391, 19:30 عصر
یعنی تو خود کلاس وب بروزر یک یه همیچین چیزی وجود داره:
HtmlDocument Document()
{
//SomeCode Hrer...
return Document;
}

Beginner2013
چهارشنبه 14 تیر 1391, 00:04 صبح
یعنی تو خود کلاس وب بروزر یک یه همیچین چیزی وجود داره:
HtmlDocument Document()
{
//SomeCode Hrer...
return Document;
}

البته این که شما گذاشتید تعریف متد هست،خاصیت تعریفش یه مقدار فرق می کنه

private HtmlDocument document;
public HtmlDocument Document
{
get
{
document=new HtmlDocument();
/*
تنظیم کردن ویژگی های شئ مثلا
document.LinkColor=Color.Blue;
*/
return document;
}
}

moslem.hady
چهارشنبه 08 شهریور 1391, 14:54 عصر
فکر نمیکنم استفاده از webbrowser کار درستی باشه. شما باید با این توابع کار کنی. استفاده ازش هم ساده است
HttpWebRequest و HttpWebResponse
فکر کنم این مثال خوبی باشه:
http://www.dotnetspider.com/resources/31376-HttpWebRequest.aspx