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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2013, 19:43   #1
Molodoy hacker
I like Delphi ^_^
Пользователь
 
Аватар для Molodoy hacker
 
Регистрация: 25.09.2010
Сообщений: 46
По умолчанию Парсинг трабл

Привет друзья, хочу спарсить строку из HTML страницы.
При парсинге парсит проактически весь код страницы.
А нужно только вот это:


Код:
<br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<h1>8963537 xxxx - Алтайский край, Билайн</h1><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
Без тегов и кириллицей.
Код пот моей кнопкой:


Код:
procedure TForm2.sButton1Click(Sender: TObject);
var
Data: TStringList;
Go,s: String;
i: integer;
begin
Data:=TStringList.Create;
Data.Add('type=text/html');
Data.Add('value='+sEdit1.Text);
idHTTP1.Post('http://nomerbeeline.ru/', Data);
Go:= IdHTTP1.Get('http://nomerbeeline.ru/905983/detail');
sMemo1.Lines.Add(Copy(Go, pos('<br><h1>', Go) + 1, pos('</h1><br>', Go) - pos('<br><h1> ', Go) -1));
sMemo1.lines.text:=StringReplace(sMemo1.lines.text,'<br>','',[]);
end;
А вот что парситься в sMemo1:

Код:

<HTML>
<HEAD><TITLE>8905983 xxxx -  òåëåôîííûé ñïðàâî÷íèê Áèëàéí</TITLE>
  <meta http-equiv='content-type' content='text/html; charset=windows-1251'>
  <meta name='robots' content='all'>
  <LINK REL='stylesheet' type='text/css' href='/style.css'>

</HEAD>
<BODY BGCOLOR='ffffff' leftMargin=0 topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0 >
<TABLE WIDTH=100% BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
<TD WIDTH=50>
</TD>
<TD>
<img src=/logo.gif>
</TD>
 </TR>
</TABLE>
<center>

<a href=http://www.nomermts.ru>Òåëåôîííûé ñïðàâî÷íèê ÌÒÑ</a>   <a href=http://www.nomermegafon.ru>Òåëåôîííûé ñïðàâî÷íèê Ìåãàôîí</a>
<br>


<br><br>
<TABLE WIDTH=1020 BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
    <TD WIDTH=1020  HEIGHT=5 BACKGROUND=/line.gif></TD>
 </TR>
</TABLE>
<br>
<TABLE border=0>
<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Íîìåð òåëåôîíà:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; 8905983 xxxx</b></font>
</td>
</tr>


<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Ðåãèîí / Îáëàñòü / Ãîðîä:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; Àëòàéñêèé êðàé</b></font>
</td>
</tr>


<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Îïåðàòîð:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; Áèëàéí</b></font>
</td>
</tr>
</TABLE>
<br><br>
<a href=http://f-top.ru/poisk.php><h1>Íàéòè àáîíåíòà â áàçå</h1></a><br><br>
<TABLE WIDTH=1020 BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
    <TD WIDTH=1020  HEIGHT=5 BACKGROUND=/line.gif></TD>
 </TR>
</TABLE>
</center>
<br><br>


<br>
<table class='menu' border='0' cellpadding='0' cellspacing='10' width='1000'>
<tbody><tr><td>

Çäåñü Âû ìîæåòå íàéòè ÷åëîâåêà ïî íîìåðó òåëåôîíà. 
Ïîèñê ïî òåëåôîíó îñóùåñòâëÿåòñÿ Âàìè ñàìîñòîÿòåëüíî, 
è âñþ îòâåòñòâåííîñòü çà ïîèñê ïî òåëåôîíó íåñåòå âû.

</td></tr>
</tbody></table>
<br><br>



<div id='logo'>


<TABLE WIDTH=1020 BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
    <TD WIDTH=11></TD>
    <TD  WIDTH=1000  align=center valign=top>

<br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<h1>8905983 xxxx - Àëòàéñêèé êðàé, Áèëàéí
на форме 1 Edit, 1 Button, 1 Memo.
Molodoy hacker вне форума Ответить с цитированием
Старый 28.06.2013, 20:50   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm2.sButton1Click(Sender: TObject);
var
Data: TStringList;
Go,s: String;
i,j: integer;
begin
Data:=TStringList.Create;
Data.Add('type=text/html');
Data.Add('value='+sEdit1.Text);
idHTTP1.Post('http://nomerbeeline.ru/', Data);
Go:= IdHTTP1.Get('http://nomerbeeline.ru/905983/detail');
i:= pos('<br><h1>', Go)+8; delete(Go,1,i);
i:= pos('</h1>', Go); 

sMemo1.Lines.Add(Copy(Go, 1,i-1);
delete(Go,1,i);
end;
Вот как я бы делал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2013, 06:59   #3
Molodoy hacker
I like Delphi ^_^
Пользователь
 
Аватар для Molodoy hacker
 
Регистрация: 25.09.2010
Сообщений: 46
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
procedure TForm2.sButton1Click(Sender: TObject);
var
Data: TStringList;
Go,s: String;
i,j: integer;
begin
Data:=TStringList.Create;
Data.Add('type=text/html');
Data.Add('value='+sEdit1.Text);
idHTTP1.Post('http://nomerbeeline.ru/', Data);
Go:= IdHTTP1.Get('http://nomerbeeline.ru/905983/detail');
i:= pos('<br><h1>', Go)+8; delete(Go,1,i);
i:= pos('</h1>', Go); 

sMemo1.Lines.Add(Copy(Go, 1,i-1);
delete(Go,1,i);
end;
Вот как я бы делал.
Попробывал ваш код, и лог выдал следующее:

Код:

<HEAD><TITLE>8905983 xxxx -  òåëåôîííûé ñïðàâî÷íèê Áèëàéí</TITLE>
  <meta http-equiv='content-type' content='text/html; charset=windows-1251'>
  <meta name='robots' content='all'>
  <LINK REL='stylesheet' type='text/css' href='/style.css'>

</HEAD>
<BODY BGCOLOR='ffffff' leftMargin=0 topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0 >
<TABLE WIDTH=100% BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
<TD WIDTH=50>
</TD>
<TD>
<img src=/logo.gif>
</TD>
 </TR>
</TABLE>
<center>
<br>
<a href=http://www.nomermts.ru>Òåëåôîííûé ñïðàâî÷íèê ÌÒÑ</a>   <a href=http://www.nomermegafon.ru>Òåëåôîííûé ñïðàâî÷íèê Ìåãàôîí</a>
<br>


<br><br>
<TABLE WIDTH=1020 BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
    <TD WIDTH=1020  HEIGHT=5 BACKGROUND=/line.gif></TD>
 </TR>
</TABLE>
<br>
<TABLE border=0>
<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Íîìåð òåëåôîíà:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; 8905983 xxxx</b></font>
</td>
</tr>


<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Ðåãèîí / Îáëàñòü / Ãîðîä:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; Àëòàéñêèé êðàé</b></font>
</td>
</tr>


<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Îïåðàòîð:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; Áèëàéí</b></font>
</td>
</tr>
</TABLE>
<br><br>
<a href=http://f-top.ru/poisk.php><h1>Íàéòè àáîíåíòà â áàçå
То-есть тоже не тот результат.
Molodoy hacker вне форума Ответить с цитированием
Старый 29.06.2013, 07:15   #4
Molodoy hacker
I like Delphi ^_^
Пользователь
 
Аватар для Molodoy hacker
 
Регистрация: 25.09.2010
Сообщений: 46
По умолчанию

Эм, вот я только что написал функцию для расшифровки этой кодировки, повились русские буквы, но как теперь выделить то что мне нужно?

Вот что выдает:

Код:

<HEAD><TITLE>8905983 xxxx -  телефонный справочник Билайн</TITLE>
  <meta http-equiv='content-type' content='text/html; charset=windows-1251'>
  <meta name='robots' content='all'>
  <LINK REL='stylesheet' type='text/css' href='/style.css'>

</HEAD>
<BODY BGCOLOR='ffffff' leftMargin=0 topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0 >
<TABLE WIDTH=100% BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
<TD WIDTH=50>
</TD>
<TD>
<img src=/logo.gif>
</TD>
 </TR>
</TABLE>
<center>
<br>
<a href=http://www.nomermts.ru>Телефонный справочник МТС</a>   <a href=http://www.nomermegafon.ru>Телефонный справочник Мегафон</a>
<br>


<br><br>
<TABLE WIDTH=1020 BORDER =0 CELLPADDING = 0 CELLSPACING = 0 >
 <TR>
    <TD WIDTH=1020  HEIGHT=5 BACKGROUND=/line.gif></TD>
 </TR>
</TABLE>
<br>
<TABLE border=0>
<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Номер телефона:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; 8905983 xxxx</b></font>
</td>
</tr>


<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Регион / Область / Город:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; Алтайский край</b></font>
</td>
</tr>


<tr valign=baseline> 
<td width='290' align='right'> 
<b><font size='5'>Оператор:</font></b>
</td>
<td>
<font size='6'><b>&nbsp;&nbsp; Билайн</b></font>
</td>
</tr>
</TABLE>
<br><br>
<a href=http://f-top.ru/poisk.php><h1>Найти абонента в базе
Нужно что-бы в memo выводился регион и оператор.
Molodoy hacker вне форума Ответить с цитированием
Старый 29.06.2013, 09:30   #5
Molodoy hacker
I like Delphi ^_^
Пользователь
 
Аватар для Molodoy hacker
 
Регистрация: 25.09.2010
Сообщений: 46
По умолчанию

О всё, сделал. Вопрос снят с обсуждения. Всем спаисбо!

Последний раз редактировалось Molodoy hacker; 29.06.2013 в 09:33.
Molodoy hacker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
трабл №2 ZMEY_KORAL Общие вопросы C/C++ 1 20.09.2012 22:53
трабл)))) ZMEY_KORAL Общие вопросы C/C++ 0 20.09.2012 22:18
трабл с xml zhosanay_zay JavaScript, Ajax 0 11.02.2012 17:45
трабл БД cyber_NINJA Помощь студентам 0 20.05.2010 17:42
трабл Informer Общие вопросы C/C++ 0 02.06.2009 15:21