1 (edited by RZ-007 2017-01-14 15:59:22)

Topic: Парсинг...

Доброго времени суток Дмитрий и Форумчане!!!
Столкнулся с такой проблем-кой:
Есть HTML код...это для меня странички для дальнейшего GET-запроса например:
2gis.ru/krasnodar/page/2/tab/firms?queryState=F10
Скромное желание я вношу в Edit1 первую часть:

2gis.ru/krasnodar/page/


в Edit2 указываю с какой страницы: к примеру Form1.Edit2.Text:=' 2';
в Edit3 указываю до какой страницы мне надо спарсить:  к примеру Form1.Edit3.Text:=' 216';
в Edit4 вставляю вторую часть:

/tab/firms?queryState=F10

Клик по Button1.....получаю в MEMO1 результат 215 сылок для GET-запроса :
2gis.ru/krasnodar/page/2/tab/firms?queryState=F10
2gis.ru/krasnodar/page/3/tab/firms?queryState=F10
2gis.ru/krasnodar/page/4/tab/firms?queryState=F10
2gis.ru/krasnodar/page/5/tab/firms?queryState=F10
-----------------------------------------------------------------------------
2gis.ru/krasnodar/page/216/tab/firms?queryState=F10
Помогите пожалуйста с реализацией скрипта????

Re: Парсинг...

Друзья не кому не попадался пример постом выше???

Re: Парсинг...

Приветствую.


procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    i: integer;
begin
    for i := trunc(Form1.Edit2.Value) to trunc(Form1.Edit3.Value) do
        Form1.Memo1.Lines.Add(Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text);
end;
Dmitry.

4 (edited by RZ-007 2017-01-19 21:43:37)

Re: Парсинг...

Дмитрий....... ЭТО РАБОТАЕТ...УРА!!!...СПАСИБО!!!
В процессе решил попробовать сделать тоже самое, только запись сделать в "ТАБЛИЦУ"...

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    i: integer;
 S : String;
begin
    for i := trunc(Form1.Edit2.Value) to trunc(Form1.Edit3.Value) do
         Form1.Memo1.Lines.Add(Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text);

         S:=(Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text);

         SQLExecute ('INSERT INTO AAA (aaa) VALUES ("'+ S +'");');
         Form1.TableGrid1.dbUpdate;
end;

Проблема в том, что вся запись попадает в одно поле.............
Помогите подкорректировать скрипт, чтоб как в  Form1.Memo1
новая строчка в переменой = новая строчка в таблице????

Re: Парсинг...

Попробуйте так

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    i: integer;
 S : String;
begin
    for i := trunc(Form1.Edit2.Value) to trunc(Form1.Edit3.Value) do
    begin
         Form1.Memo1.Lines.Add(Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text);

         S:=Form1.Edit1.Text + IntToStr(i) + Form1.Edit4.Text;

         SQLExecute ('INSERT INTO AAA (aaa) VALUES ("'+ S +'");');
   end;

   Form1.TableGrid1.dbUpdate;
end;
Dmitry.

Re: Парсинг...

Здорого работает на УРА...СПИСИБО!!!

Re: Парсинг...

Доброго времени суток!!!

Form7.Memo14.Lines.Add(ReplaceStr(RegExp13.Match[oi], '<STRONG><EM>'' or ''<STRONG>', ''));

Помогите правильно объеденить ('<STRONG><EM>'' or ''<STRONG>')....???

Re: Парсинг...

RZ-007
К сожалению не понял вашего вопроса, опишите подробней.

Dmitry.

9 (edited by RZ-007 2017-01-30 13:33:56)

Re: Парсинг...

DriveSoft wrote:

RZ-007
К сожалению не понял вашего вопроса, опишите подробней.

Form7.Memo14.Lines.Add(ReplaceStr(RegExp13.Match[oi], '<STRONG><EM>', ''));
Form7.Memo14.Lines.Add(ReplaceStr(RegExp13.Match[oi], '<STRONG>', ''));
Form7.Memo14.Lines.Add(ReplaceStr(RegExp13.Match[oi], '<STR', ''));

Есть способ объяденить эти три строчки в одну...???

Re: Парсинг...

RZ-007
Нет, фунция ReplaceStr довольно простая, просто заменяет один  текст на другой, без каких либо расширенных возможностей. Поэтому придеться вызвать эту функцию несколько раз.

Dmitry.

Re: Парсинг...

ОК!!! СПАСИБО!!!