Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2013, 20:21   #1
develsnik
Форумчанин
 
Регистрация: 21.02.2013
Сообщений: 105
По умолчанию Делфи и Яндекс

Добрый вечер,уважаемые программисты)
Как бы мне спарсить новости с яндекса в memo?
Вот ,что то сделал,но не работает(
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, StrUtils;

type
  TForm2 = class(TForm)
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

function extract(source, begin1, end1: string): string; overload
var
  a: integer;
begin
  a := pos(begin1, source) + length(begin1);
  result := copy(source, a, posex(end1, source, a) - a);
end;

function extract(source, begin1, end1: string; beginoffset: integer): string; overload
var
  a: integer;
begin
  a := posex(begin1, source, beginoffset) + length(begin1);
  result := copy(source, a, posex(end1, source, a) - a);
end;

function parse(source: string): string;
begin
  result := extract(source, 'b-news-list__item', '</div>');


end;

procedure TForm2.Button1Click(Sender: TObject);
var
  st: string;
  tmp: textfile;
begin
  st := utf8toansi(idhttp1.Get('http://yandex.ru/'));
  {assignfile(tmp, 'news.html');
  rewrite(tmp);
  write(tmp, st);
  closefile(tmp);}
  st := extract(st, 'b-news-list__item', '</div>');
  listbox1.Clear;
  while pos('b-news-list__item', st) <> 0 do
  begin
    listbox1.Items.Add(parse(extract(st, 'b-news-list__item', '</div>')));
    st := copy(st, pos('</div>', st) + 5, length(st) - pos('</div>', st) - 5);
  end;
end;
как это доделать?
Заранее большое спасибо)

_________
не забывайте оформлять код по правилам - тегами [CODE] .. [ /CODE]
( кнопочка на панели форматирования # )

Модератор

Последний раз редактировалось Serge_Bliznykov; 06.03.2013 в 23:54.
develsnik вне форума Ответить с цитированием
Старый 06.03.2013, 21:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примера нет. В общем случае вот это: http://yandex.ua/yandsearch?text=%D0...oc=10&lr=20554
Все зависит от структуры страницы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.03.2013, 22:17   #3
develsnik
Форумчанин
 
Регистрация: 21.02.2013
Сообщений: 105
По умолчанию

с яндекса.
Я пример привел и по сути он правильный т.к. писал не я,но он был настроен на другой сайт.
Мне надо под яндекс переделать...
develsnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Яндекс карта Holyman PHP 1 31.03.2012 23:09
Яндекс жжет)) MyLastHit Свободное общение 28 02.05.2011 13:05
это Яндекс!!! Altera Свободное общение 35 21.10.2009 00:35