[Delphi] Подскажите как правильно спарсить кусок кода страницы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by HyperOne, 25 May 2013.

  1. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    Возникла проблема - необходимо спарсить информацию со страницы http://ipgeobase.ru/.

    http://ipgeobase.ru/?address=217.148.55.243 слева есть колонка с данными.

    Как сделать так, чтобы в Memo1 вывелась информация в виде:

    Code:
    Страна 	RU
    Город 	Екатеринбург
    Регион 	Свердловская область
    Округ 	Уральский федеральный округ

    Поможите, добры люди :)
     
  2. Eich3

    Eich3 Member

    Joined:
    27 Jan 2013
    Messages:
    22
    Likes Received:
    7
    Reputations:
    5
    Поищи биндинги libxml2 под Delphi и используй следующий Xpath-запрос:

    //table[@class="rez_new"]//td

    Получится список строк, где идут по очереди пары левой и правой колонки:

    далее уже форматируй на свое усмотрение.


    Альтернатива - использовать регулярки, но они могут быть адовыми применительно к парсингу HTML.
     
  3. HyperOne

    HyperOne New Member

    Joined:
    23 Nov 2010
    Messages:
    44
    Likes Received:
    4
    Reputations:
    3
    эм.... а попроще способы есть? без дополнительных компонентов...
     
  4. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    HTML не парсится. HTML построен на XML может как угодно изменяться
    <a href="test.html">
    <a myAttr="test2.html" href="#" onClick="location.href='ya.ru'">

    ^ все это корректно.

    Поэтому HTML не парсится, а разбирается, как XML документ.
    Гугли в сторону mshtml
     
    _________________________