HTML에서 원하는 부분만 골라내자(http://chaoskcuf.com/137)라는 프로그램의
버전 업데이트 정보입니다.

기존 프로그램에 singleline 기능을 추가하였습니다.
Singleline이 무엇인고 하니
만약에 다음에서 원더걸스 이미지를 검색하고자 한다고 가정해봅시다.
(http://search.daum.net/search?w=img& ··· 58a%25a4)
위의 검색결과 페이지에 HTML 소스를 보면 이미지 하나당 아래와 같은 코드가 반복되는 것을 알 수 있습니다.
<td width="152" valign="bottom" nowrap>
<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:7px">
<tr>
<td class="iArea"><a href="http://cafe240.daum.net/_c21_/bbs_searc ··· mn2plh00" target="_blank" onClick="smartLog(this, 's=IM&a=TIIM&d=N2plH00&pg=1&r=10&p=1&rc=16&e1=15&st=3&bt=1&hs=0&hi=1',event); return gUSRXLink(this, 'TIIM', '10', '1', '', '15', 'N2plH00', '', '', 'N2plH00', '1', '16', event);"><img src="http://image01.search.daum-img.net/imgthum/img02/2/82/11/CF_5sb4_IwYk_247946_23.jpg" onError="noImage(this)"></a></td>
</tr>
</table>
<div><a href="http://cafe240.daum.net/_c21_/bbs_searc ··· mn2plh00" onMouseOver="overLayer('원더걸스 뉴욕체험 2/26~27',event)" onMouseOut="hideLayer()" target="_blank" onClick="smartLog(this, 's=IM&a=TIIM&d=N2plH00&pg=1&r=10&p=2&rc=16&e1=15&st=3&bt=1&hs=0&hi=1',event); return gUSRXLink(this, 'TIIM', '10', '2', '', '15', 'N2plH00', '', '', 'N2plH00', '1', '16', event);"><b>원더걸스</b> 뉴욕체험 ..</a></div>
<div class="gt">450 x 300<span id="vline"> | </span>
카페
</div>
<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:7px">
<tr>
<td class="iArea"><a href="http://cafe240.daum.net/_c21_/bbs_searc ··· mn2plh00" target="_blank" onClick="smartLog(this, 's=IM&a=TIIM&d=N2plH00&pg=1&r=10&p=1&rc=16&e1=15&st=3&bt=1&hs=0&hi=1',event); return gUSRXLink(this, 'TIIM', '10', '1', '', '15', 'N2plH00', '', '', 'N2plH00', '1', '16', event);"><img src="http://image01.search.daum-img.net/imgthum/img02/2/82/11/CF_5sb4_IwYk_247946_23.jpg" onError="noImage(this)"></a></td>
</tr>
</table>
<div><a href="http://cafe240.daum.net/_c21_/bbs_searc ··· mn2plh00" onMouseOver="overLayer('원더걸스 뉴욕체험 2/26~27',event)" onMouseOut="hideLayer()" target="_blank" onClick="smartLog(this, 's=IM&a=TIIM&d=N2plH00&pg=1&r=10&p=2&rc=16&e1=15&st=3&bt=1&hs=0&hi=1',event); return gUSRXLink(this, 'TIIM', '10', '2', '', '15', 'N2plH00', '', '', 'N2plH00', '1', '16', event);"><b>원더걸스</b> 뉴욕체험 ..</a></div>
<div class="gt">450 x 300<span id="vline"> | </span>
카페
</div>
</td>
<td width="33%" nowrap> </td>
여기서 빨간색 부분만 골라내고 싶을 경우
Pattern 에 (?:<td width="152" valign="bottom" nowrap>?).+?<img src="(.+?)".+?>.+?overLayer\('(.+?)' 를 입력하고
Singleline Document 체크박스에 체크를 합니다.
이렇게 한다면 다음 검색 결과에서 이미지 주소와 이미지의 제목을 쉽게 얻을 수 있습니다.
Singleline은 전체 문서를 한 줄로 가정한다는 것입니다.
그래서 패턴이 여러줄에 걸쳐서 비교하게끔 할 수 있습니다.
반대로 Singleline 을 끈다면 문서를 각 줄마다 끊어서 패턴과 비교합니다.
(이럴 경우 위와 같은 패턴식을 사용할 수 없겠죠.)
위와 같이 하신다면 간단한 크롤러(Crawler)는 쉽게 만들 수 있을 거라 생각이 듭니다.
P.S. 프로그램이 비정상 종료되는 버그를 수정하였습니다.

Parser0.2.zip




