안녕하세요, 초보하나 많은 도움에 감사를 드려요.^^*
실제 추출할 HTML 소스와 pas 소스는 아래와 같구요...
- HTML 소스 -------------------------------------------------------
...
...줄공백
...
<html>
<head>
<title>물품목록조회</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<link rel="stylesheet" type="text/css" href="../css/TA.css">
<script language="javascript">
...
... 생략
...
<a href="javascript:goASPPage('20061217446','00')">20061217446-00</a>
</td>
<td class=tdcc>일반</td>
<td class=tdc>
<a href="javascript:goASPPage('20061217446','00')">
....생략
</body>
</html>
-------------------------------------------------------------------
<!--CodeS-->
- unit.pas --------------------------------------------------------
// html추출
procedure TForm1.htmlSrc(Sender: TObject);
begin
try
Memo1.Clear;
// 브라우져에서 html추출
HTMLStr := TStringList.create;
HTMLStr.Text := WebBrowser1.OleObject.Document.DocumentElement.OuterHTML;
for index := 0 to HTMLStr.Count-1 do
begin
// 번호 추출
gcodeStr := Pos(':goASPPage(''', HTMLStr.strings[index])+11;
HTMLDoc1 := copy(HTMLStr.strings[index], gcodeStr+1,11);
// 회차 추출
gcodeStr := Pos(''',', HTMLStr.strings[index])+2;
HTMLDoc2 := copy(HTMLStr.strings[index], gcodeStr+1,2);
if HTMLDoc1 <> '' then memo1.Lines.Add(HTMLDoc1);
if HTMLDoc2 <> '' then memo1.Lines.Add(HTMLDoc2);
HTMLDoc := HTMLDoc1 + '-' + HTMLDoc2;
memo1.Lines.Add(HTMLDoc);
end;
HTMLStr.free;
except
end;
end;
-------------------------------------------------------------------
<!--CodeE-->
위의 HTML 소스를 아래의 Pas 소스로 돌리게 되면, 이상하게도 Pos() 로 지정된 문자열기준에서 정확히 뽑아오는 부분도 있지만 비정상적인 부분까지도 뽑아오더라구요.
- 결과물 ----------------------------------------------------------
...생략
-R>
iddle heigh-D
Spacing=0 c-AB
-BO
-R>
useover="im-D>
useover="im-',
useover="im-D>
useover="im-D>
useover="im-D>
useover="im-'p
useover="im-D>
useover="im-D>
...
-------------------------------------------------------------------
델파이 생각보다 너무 어려운것 같아요 ㅠ.ㅠ
작은 조언 한말씀 부탁드려요.
정규식 규칙만 조금 익히면 원하시는 부분의 문자열 추출은 어렵지 않습니다.
시간을 조금 투자하셔서 정규식 공부하시고 해당 소스를 추출하는 식을 만들어내서 적용하면 되겠습니다.
여기 사이트에 들어가시면 컴포넌트는 받으실수 있습니다.
http://www.regexbuddy.com/delphi.html
도움이 되실련지.. 초보님.. 어려울수도 있지만 익혀두면
나중에 이 기술이 무지 도움이 된답니다..
그럼 수고하세요.