PDA

View Full Version : جستجوي گوگل در فرم ويندوزي



shahnam sha
شنبه 16 مهر 1390, 17:32 عصر
سلام دوستان من مي خوام توي فرمم (از نوع ويندوزي) جستجوي گوگل بگذارم تا متني که تايپ مي شه رو از گوگل جستجو کنه و من در يک text box نمايش بدهم.در سايت هم جستجو کردم ولي موردي پيدا نکردم.اگه کسي تجربه اي در اين زمينه داره لطفا راهنمايي کنه.

Sajjad.Aghapour
شنبه 16 مهر 1390, 20:28 عصر
توی TextBox میخواید نشون بدید؟

از HttpWebRequest, HttpWebResponse میتونید استفاده کنید...

HttpWebRequest r = (HttpWebRequest)WebRequest.Create("http://google.com/search?q=programming");
HttpWebResponse response = (HttpWebResponse)r.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string content = reader.ReadToEnd();
reader.Close();


یا


WebClient c = new WebClient();
string content = c.DownloadString("http://google.com/search?q=programming");

کامبیز اسدزاده
شنبه 16 مهر 1390, 23:21 عصر
سوال جالبی بود و پاسخ جالبیم داشت ! حالا نتیجرو چطوری میشه مرتبش کرد که قابل خوندن بشه ؟

کامبیز اسدزاده
شنبه 16 مهر 1390, 23:31 عصر
آقا این خیلی جالب شد به نظرم حالا من یه سوا میکنم !
برفرض ما این لینک رو لود کردیم : http://whois.domaintools.com/barnamenevis.org
حالا میخوامییم فقط این محتوای زیر در داخل تکست دیده بشه :

Meta Keywords:
آموزش, برنامه نویسی, آموزش c, آموزش asp.net, asp.net پیشرفته, آموزشگاه برنامه نویس, آموزشگاه برنامه نویسی, آموزشگاه برنامه نویس, آموزش linq, آموزش net

باید چکار کنیم ؟ راهی هست برای جستجو کردن یا مقدار گرفتن ؟

F.zeinali
شنبه 16 مهر 1390, 23:35 عصر
توی TextBox میخواید نشون بدید؟

از HttpWebRequest, HttpWebResponse میتونید استفاده کنید...

HttpWebRequest r = (HttpWebRequest)WebRequest.Create("http://google.com/search?q=programming");
HttpWebResponse response = (HttpWebResponse)r.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string content = reader.ReadToEnd();
reader.Close();


یا


WebClient c = new WebClient();
string content = c.DownloadString("http://google.com/search?q=programming");




اسم NameSpace های webClient و httpWebRequest چیه؟؟

کامبیز اسدزاده
شنبه 16 مهر 1390, 23:44 عصر
Napespace هاش ایناست


using System.Net;
using System.IO;

shahnam sha
یک شنبه 17 مهر 1390, 12:50 عصر
از همه دوستاني که در بحث شرکت کردند متشکرم به خصوص مدير محترم بخش آقاي آقاپور.
مطالب شما کاربردي و خوب بود .
بعد از ديدن مطالب دو سوال برايم بوجود آمد
1- آيا به اطلاعاتي که نتيجه جستجو هست و در صفحات دوم به بعد هست به چه صورتي مي توان دسترسي داشت؟
2-به چه صورتي ميشه فرايند جستجو به جاي اينکه توسط سايت گوگل انجام بشود توسط برنامه نوشته شده خودمان انجام شود.(برنامه اي بنويسيم که به صورت مستقل کار جستجو را انجام دهد.)در صورت امکان با نمونه کد بفرماييد.
پيشاپيش از لطف شما سپاسگذارم.

Sajjad.Aghapour
یک شنبه 17 مهر 1390, 13:01 عصر
آقا این خیلی جالب شد به نظرم حالا من یه سوا میکنم !
برفرض ما این لینک رو لود کردیم : http://whois.domaintools.com/barnamenevis.org
حالا میخوامییم فقط این محتوای زیر در داخل تکست دیده بشه :

Meta Keywords:
آموزش, برنامه نویسی, آموزش c, آموزش asp.net, asp.net پیشرفته, آموزشگاه برنامه نویس, آموزشگاه برنامه نویسی, آموزشگاه برنامه نویس, آموزش linq, آموزش net

باید چکار کنیم ؟ راهی هست برای جستجو کردن یا مقدار گرفتن ؟

میتونید از RegularExpression استفاده کنید. برای مثال:


Regex reg = new Regex("<meta.*name=\"keywords\".*/>");
string keywords = reg.Match( content).Value;

Sajjad.Aghapour
یک شنبه 17 مهر 1390, 13:13 عصر
از همه دوستاني که در بحث شرکت کردند متشکرم به خصوص مدير محترم بخش آقاي آقاپور.
مطالب شما کاربردي و خوب بود .
بعد از ديدن مطالب دو سوال برايم بوجود آمد
1- آيا به اطلاعاتي که نتيجه جستجو هست و در صفحات دوم به بعد هست به چه صورتي مي توان دسترسي داشت؟
2-به چه صورتي ميشه فرايند جستجو به جاي اينکه توسط سايت گوگل انجام بشود توسط برنامه نوشته شده خودمان انجام شود.(برنامه اي بنويسيم که به صورت مستقل کار جستجو را انجام دهد.)در صورت امکان با نمونه کد بفرماييد.
پيشاپيش از لطف شما سپاسگذارم.

این کار رو میتونید به دو صورت انجام بدید:
1. گوگل برای Pagination از پارامتر start استفاده میکند و به طور پیش فرض وقتی Google Instance فعال هست در هر صفحه 10 نتیجه رو برای شما به نمایش میگذاره. در این صورت اگر جستجو به صورت زیر انجام بشه صفحه دوم برای شما به نمایش درمیاد:


http://www.google.com/search?q=programming&start=10

2. اگر Google Instance غیر فعال باشد پارامتر دیگری هم به کمک شما میاد. پارامتر num که تعداد نتایج جستجو در هر صفحه رو به شما نمایش میده. برای مثال اگه این پارامتر به 30 مقدار دهی بشه هر صفحه برای شما 30 نتیحه ر به نمایش در میاره

اما برای سوال دومتون. فکر میکنم اگر به این صورت کار کنید گوگل IP شما رو Spam میکنه. ولی اگر میخواین این کار رو انجام بدین گوگل لینک نتایج جستجو رو داخل تگ <cite> نگهداری میکنه. باید یه Parser بنویسید تا این لینک ها رو براتون در بیاره..

موفق باشید/

shahnam sha
یک شنبه 17 مهر 1390, 18:23 عصر
متشکرم از اگه ممکنه کامل تر توضيح بدهيد آيا راه حل ديگه اي وجود داره؟

کامبیز اسدزاده
دوشنبه 18 مهر 1390, 00:15 صبح
بسیار متشکر از تمامی عزیزان ! این بحث خیلی جالب هست و کاربرد زیادی هم میتونه داشته باشه از جناب آقاپور خواهشمند هستم برای این عنوان یک چند تا مثالی از سوالای دوستان بذارن .

من این رو آزمایش کردم میشه یک بار تستش کنید خودتون


HttpWebRequest r = (HttpWebRequest)WebRequest.Create("http://whois.domaintools.com/barnamenevis.org");
HttpWebResponse response = (HttpWebResponse)r.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string content = reader.ReadToEnd();
reader.Close();
Regex reg = new Regex("<meta.*name=\"keywords\".*/>");
string keywords = reg.Match(content).Value;
textBox1.Text = keywords.ToString();



نتیجه چیزیرو نشون نمیده !

Sajjad.Aghapour
پنج شنبه 21 مهر 1390, 01:20 صبح
ببخشید یه خورده درگیر هستم...

نمیدونم این سایت به چه صورت کار میکنه اما این لینکی که شما دادید در اصل به صورت زیر هست که فکر میکنم دارن با ModRewrite دستکاریش میکنن. باید بررسی کنم


http://domaintools.com/go/?q=barnamenevis.org&service=whois


برای whois میتونید از سرورهای اصلی اونها استفاده کنید...
برای مثال هم چشم. یه وقت مناسب حتما(یه خورده درگیرم. چشامم میره درآد الان D:)

موفق باشید/

کامبیز اسدزاده
پنج شنبه 21 مهر 1390, 12:12 عصر
درکت میکنیم آقای احمدی پور در وقت مناسب راهنماییمون کن سر حال بودن شما ها برامون با ارزشتر از به جواب رسیدن زود هنگام هستش.