Спарсить информацию со страницы [DELPHI]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by TENMAX, 21 May 2011.

  1. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    Пишу прогу для своего инет провайдера.
    Написал код авторизации, всё работает.

    Нужно спарсить баланс со страницы и ещё пару фигнюшек. Но на странице не за что зацепиться. По тегам пробовал парсить... ничего не получилось.

    Кто может помочь, отпишите, вышлю код в лс.

    Спасибо.
     
  2. rpo3a

    rpo3a New Member

    Joined:
    24 Apr 2011
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    Код в студию))
     
  3. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    HTML-код страницы выложы - посмотрим)
     
  4. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Выложи код страницы.
     
  5. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Угу :) щас сделаем тебе в лучшем виде:)
    и кидай всю инфу сразу :)
     
  6. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    Код проги:
    ша залью исходный код стр
     
  7. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    http://www.sendspace.com/file/p0833a

    вот исходный код страницы.

    Заранее благодарю
     
  8. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Теперь уточни что спарсить , по пунктам:) учитесь создавать ТЗ..
     
  9. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    баланс

    п.с.

    понял что надо искать строку
    <td class="td_comm td_15px td_bold" style="color: red">
    и после неё вырезать до </td>
    но хз как это сделать...
     
  10. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Сорр туплю:) все вижу:)
     
  11. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    <td class="td_comm td_15px td_bold" style="color: red">127,94</td>
    <td class="td_comm td_15px">руб</td>
     
  12. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Парсиш все в Memo , потом ищем эту строку
    <td class="td_comm td_15px td_bold" style="color: red">127,94</td>
    , потом с ней удаляем все что нинадо , и все проблемы!!
     
  13. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Code:
    var html:string;
    begin
    //тут получаем код страницы
    delete(html, 1, pos('<td class="td_comm td_15px td_bold" style="color: red">', html)+length('<td class="td_comm td_15px td_bold" style="color: red">'));
    html:=copy(html, 1, length(html)-pos('</td', html));
    end;
    
    html - изначально код страницы, на выходе - баланс

    П. С. код не проверялся, возможно длины копируемых/удаляемых подстрок нужно увеличить/уменьшить на 1. вобщем эксперементируй)
     
  14. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    проблема в том что - 127,94 меняется
     
  15. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    хех ... мысли совпадают :)
     
  16. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Тебе пачер показал как , зачем целою строку парсить ..
    парси кусок <td class="td_comm td_15px td_bold" style="color: red"> , дале берем там символом 20 с запасом.. и все дело в шляпе!!
     
  17. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5
    потестил, не получается что-то, просто пустое значение копируется в лейбл.
     
  18. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    Я Делфи не люблю но держи

    //////////////////////////////////
    procedure TForm3.Button1Click(Sender: TObject);
    var
    Data, X:TStringList;
    pos1,i:integer;
    begin
    for i := 0 to Memo1.Lines.Count - 1 do begin
    pos1:=Pos('<td class="td_comm td_15px td_bold" style="color:', Memo1.Lines.Strings);
    if (pos1 > 0) then
    Edit1.Text:=Memo1.Lines.Strings;
    end;

    end;
    ///////////////////
    Тут найдет тебе нужную строки и кинеть в едит. а дале сам поймеш что да как...
    еще нюанс сделай размеры мемо такие : Width: 657
    Height: 177
    Это для таго что б парсилось норм по строкам.
     
    #18 ShyRka_coder, 21 May 2011
    Last edited: 21 May 2011
  19. TENMAX

    TENMAX Member

    Joined:
    20 Nov 2009
    Messages:
    0
    Likes Received:
    35
    Reputations:
    5



    сделал, как ты сказал, после нажатия на кнопку ничего не происходит
     
  20. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    я надеюсь ты текст в мемо загрузил?)