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

نام تاپیک: گرفتن اطلاعات از گوگل

  1. #1
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    گرفتن اطلاعات از گوگل

    سلام دوستان

    - چگونه میشود یک متنی را در گوگل جستجو کنیم و نتایج رو داخل تکست باکس نمایش بدیم؟

    - چگونه میتوان تصویری را در گوگل جستجو کنیم و نتیجه تصویر جستجو شده را داخل پیکچر باکس بدست بیاوریم؟ یا لینک عکس را بدست بیاوریم؟


    آیا حتما بایستی از کتابخانه های Google.Apis استفاده کنم ؟ راه دیگری نداره؟ برای این کتابخانه ها مثالی دارید؟

    Google.Apis.Core.dll
    Google.Apis.dll
    Google.Apis.PlatformServices.dll
    آخرین ویرایش به وسیله samiasoft : پنج شنبه 11 خرداد 1396 در 03:06 صبح

  2. #2
    کاربر دائمی آواتار nunegandom
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    الان اصفهان
    سن
    33
    پست
    828

    نقل قول: گرفتن اطلاعات از گوگل

    با سلام
    درخواستی که میزنید سمت گوگل با کلاس webbrowser یا هرچی که دوست داشتید باید همچین چیزی باشه برای قسمت متنی:

    https://www.google.com/search?q=<SearchForWhat>

    و بعد از اینکه صفحه complete شد بخونیدش...

    قسمت جست و جوی عکسی دوتا ره حل داره:
    ۱- یه جا آپلود بشه و آدرسش راحت ارسال داخل input مورد نظر قرار بگیره
    ۲- ببینید که آپلود عکس مقصدش کجاست (اینو فکر کنم با Tamper Data ی فایر فاکس میشه فهمید) و ارسالش کنید (که اینو نمیدونم دقیقا چجوریه داستانش)

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

    که میفرسته به https://www.google.com/searchbyimage/upload
    که البته ظاهرا خیلی چیزا ارسال میکنه

  3. #3
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: گرفتن اطلاعات از گوگل

    ممنون از راهنمایی شما

    ولی من نتونستم کدشو بنویسم.

      var url = "https://www.google.com/search?q="  + HttpUtility.UrlEncode("sami"));            using (var webClient = new WebClient())
    {
    textBox1.Text = webClient.DownloadString(url);
    }




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

  4. #4
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: گرفتن اطلاعات از گوگل

    دوستان من این راه رو هم برای سرچ در گوگل رفتم ولی متاسفانه اونجایی که باید api کلید بسازیم بعد ساخت کلید در برنامم خطا میده که این فعال نشده برای فعالسازیش هم انگار بایستی در حسابی که ساختم پول واریز کنم چرا که مشخصات ازم میخواد !

     const string apiKey = "AIzaSyCbMKpyLqUH_6Nu9XwRA9r1DY7_sluR5c0";            const string searchEngineId = "006468701770972545753:csfoslx7wwy";
    const string query = "دنیای نرم افزار";
    var customSearchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = apiKey });
    var listRequest = customSearchService.Cse.List(query);
    listRequest.Cx = searchEngineId;


    textBox1.Text += "Start..." ;
    IList<Result> paging = new List<Result>();
    var count = 0;
    while (paging != null)
    {

    listRequest.Start = count * 10 + 1;
    paging = listRequest.Execute().Items;
    if (paging != null)
    foreach (var item in paging)
    textBox1.Text += "Title : " + item.Title + Environment.NewLine + "Link : " + item.Link +
    Environment.NewLine + Environment.NewLine ;
    count++;
    }


    توضیحات در لینک زیر :
    http://hintdesk.com/c-how-to-use-goo...om-search-api/

    حال به نظرتون چیکار کنم؟
    یه راه ساده برای دریافت نتایج جستجو در گوگل وجود نداره؟اگر با دستورات پست قبلی بشه اینکارو انجام داد این راه api کلید رو استفاده نکنیم.

  5. #5
    کاربر دائمی آواتار nunegandom
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    الان اصفهان
    سن
    33
    پست
    828

    نقل قول: گرفتن اطلاعات از گوگل

    سلام مجدد

    private void button1_Click(object sender, EventArgs e)
    {
    webBrowser1.Navigate("http://www.google.com/search?q=" + textBox1.Text);
    webBrowser1.DocumentCompleted += WebBrowser1_DocumentCompleted;
    }


    private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    string doc = webBrowser1.DocumentText;
    richTextBox1.Text = doc;
    }

    یه webbrowser نیاز دارید + event complete
    بعد از لود شدن صفحه برای بیرون کشیدن اطلاعات به چند روش میشه عمل کرد من خودم از regex راحتتر استفاده میکنم به این صورت که:
    ۱- کل قسمت نتایج رو بیرون میکشم
    پترن:
    (?<=<div class=\"g\">).+(?=<\/div>)

    ۲- با استفاده از ۱ ،نتایجم رو تیکه تیکه میکنم، پترن:
    (?<=<!--m-->).+?(?=<!--n-->)

    ۳- حالا از ۲، استفاده میکنم و آدرس سایت رو بیرون میارم، پترن:
    (?<=<cite class=\"_Rm\">).+?(?=</cite>)

    ۴- از ۲ استفاده میکنم و توضیحات رو بیرون میکشم، پترن:
    (?<=<span class=\"st\">).+?(?=</span>)

    ۵- از ۲ استفاده میکنم و آدرس رو درمیارم با دو پترن به این صورت:
    اول h3 رو بیرون میکشم:
    (?<=<h3 class=\"r\">).+(?=</h3>)

    بعد از نتیجه اول استفاده میکنم و تکست تگ a رو بیرون میکشم :
    (?<=\">).+?(?=</a>)

  6. #6
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: گرفتن اطلاعات از گوگل

    تشکر از شما

    ولی فکر میکنم دراین حالت یه ذره سرعت کار میاد پایین.
    چون میخواستم من اینو در عین لحظه به ربات تلگرامم ارسال کنم.

    این روشی که گفتید من امتحان نکردم متاسفانه روی نتایج فارسی امکان پذیر نیست! الان خودتون با کدی که نوشتید سورس گوگل رو بدست بیارید.خواهید دید که اصلا متن فارسی داخل سورس برای استخراج وجود ندارد!!!!فک کنم باید به utf تبدیل بشه.


    در انجمن در لینک زیر من یه سورسی پیدا کردم که بعد از جستجو لینک نتایج سایت های جستجو شده رو به من میده .
    https://barnamenevis.org/showthread.p...=1#post2236914

    ولی متاسفانه من به دنبال گرفتن عناوین این نتایج هستم.دوستان به نظرتون نمیشه این سورس رو ویرایش کرد تا فقط عناوین رو به ما بده.فک کنم این راه از راه قبلی سریعتر باشه.
    آخرین ویرایش به وسیله samiasoft : دوشنبه 15 خرداد 1396 در 17:56 عصر

  7. #7
    کاربر دائمی آواتار nunegandom
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    الان اصفهان
    سن
    33
    پست
    828

    نقل قول: گرفتن اطلاعات از گوگل

    درسته من انگلیسی رو چک کرده بودم
    برای فارسی باید سورس رو نگاه کنید
    الان مثلا قسمت توضیحاتش رو توی فارسی میتونید از پترن:
    (?<=<span dir="rtl"><em>).+?(?=<\/span>)

    بدست بیارید
    سرعت regex خیلی بالاست :\

  8. #8
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: گرفتن اطلاعات از گوگل

    نه ببینید
    منظورم این هست که در سورس کلا من متن فارسی نمیبنم اصلا !

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

      var webClient = new WebClient(); 
    var pageSourceCode = webClient.DownloadString("https://www.google.com/search?q=" + textBox1.Text );

    textBox2.Text = pageSourceCode;


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

    var webClient = new WebClient(); 
    var pageSourceCode = webClient.DownloadString("https://www.google.com/search?q=" + textBox1.Text );


    //تبدیل به یوتی اف
    byte[] b = System.Text.Encoding.Default.GetBytes(pageSourceCo de);
    pageSourceCode = System.Text.Encoding.UTF8.GetString(b);
    ///


    textBox2.Text = pageSourceCode;

  9. #9

    نقل قول: گرفتن اطلاعات از گوگل

    سلام
    برای گرفتن نتایج راه ساده و تک خطی اینه با گت المنت ایدی ires رو در ریچ تکست باکس بریزی
    نتایج گوگل در ires هستند
    نمونه :
    این برای HTML
    کد HTML:
    richTextBox1.Text = webBrowser3.Document.GetElementById("ires").InnerHtml;
    اینم TEXT
    کد HTML:
    richTextBox1.Text = webBrowser3.Document.GetElementById("ires").InnerText;

  10. #10
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: گرفتن اطلاعات از گوگل

    نقل قول نوشته شده توسط soheilnew مشاهده تاپیک
    سلام
    برای گرفتن نتایج راه ساده و تک خطی اینه با گت المنت ایدی ires رو در ریچ تکست باکس بریزی
    نتایج گوگل در ires هستند
    نمونه :
    این برای HTML
    کد HTML:
    richTextBox1.Text = webBrowser3.Document.GetElementById("ires").InnerHtml;
    اینم TEXT
    کد HTML:
    richTextBox1.Text = webBrowser3.Document.GetElementById("ires").InnerText;
    تشکر از شما
    ولی من نمیخوام از وب بروزر استفاده کنم...راه دیگری نداره؟

  11. #11

    نقل قول: گرفتن اطلاعات از گوگل

    البته یادم رفت اضافه کنم که برای جستجوی متن فارسی هم باید بصورت زیر متن را بفرستی
    کد HTML:
                webBrowser3.Navigate(Uri.EscapeUriString("http://www.bing.com/search?q=" +textBox1.Text));
    برای حل مشکل علامت ??????? بجای متون فارسی از Uri.EscapeUriString استفاده کنید

  12. #12

    نقل قول: گرفتن اطلاعات از گوگل

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

  13. #13
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: گرفتن اطلاعات از گوگل

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

    بایستی به اخر ادرس عبارت &=utf8&oe=utf8 را اضافه میکردیم.

     var webClient = new WebClient(); 
    var pageSourceCode = webClient.DownloadString("https://www.google.com/search?q=" + textBox1.Text + "&=utf8&oe=utf8");


    //تبدیل به یوتی اف
    byte[] b = System.Text.Encoding.Default.GetBytes(pageSourceCo de);
    pageSourceCode = System.Text.Encoding.UTF8.GetString(b);
    ///


    textBox2.Text = pageSourceCode;


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

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

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