кАк получить результаты поиска в интернете

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Radiator, 7 Jan 2011.

  1. Radiator

    Radiator Active Member

    Joined:
    17 Mar 2009
    Messages:
    394
    Likes Received:
    143
    Reputations:
    24
    1.допустим надо получить данные из яндекса на первых 10 страницах по определенному запросу,например "картошка"
    2. только сайты в виде site.ru
    3. вывести их в memo1


    спасибо
     
  2. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    Делаешь GET запрос, вида yandex.ru/yandsearch?text=kartoshka, где kartoshka твой запрос, далее парсишь с полученной страницы ссылки (в Delphi с помощью Pos, Copy, Delete или RegExpr) и выводишь в мемо.
    Кода на 3 минуты, но я тебе его писать не буду, ибо не***.
     
    #2 HakaR, 7 Jan 2011
    Last edited by a moderator: 8 Jan 2011
  3. xmadstyle

    xmadstyle Member

    Joined:
    29 Aug 2008
    Messages:
    91
    Likes Received:
    53
    Reputations:
    24
    Рождественская акция "Помоги *****кодеру" xD
    Code:
    uses IdHTTP;
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    var x_http: TIdHTTP;
        str: String;
    begin
      x_http:= TIdHTTP.Create(self);
      x_http.HandleRedirects:=true;
      try str:=x_http.Get('http://yandex.ru/yandsearch?text='+Edit1.Text);
      except MessageBox(Form1.Handle,'Error =/','Info:',MB_ICONERROR);end;
      while(Pos('<b class="b-serp-item__number">',str)>0) do begin
        str:=Copy(str,Pos('<b class="b-serp-item__number">',str)+31,Length(str)-Pos('<b class="b-serp-item__number">',str)-31);
        Memo1.Lines.Add(Copy(str,Pos('href="',str)+6,Pos('" onmousedown',str)-Pos('href="',str)-6));
      end;
      x_http.Free;
    end;
     
    #3 xmadstyle, 8 Jan 2011
    Last edited by a moderator: 8 Jan 2011