2014. 7. 24. 03:17

HTML PARSER – 3 (뽐뿌휴대폰계시판)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요.

현재 HTML PARSER 작업을 진행 중인데요.

오늘 하루 소요 하면서 알아낸 정보 입니다.

요약

  • 실제 웹에서 쓰이는 HTML TAG는 엄격한 문법이 적용되지 않았다.
  • HTML Grammar 분석보다 웹페이지 파싱 후 파서 제작이 더 빠르다.
  • Web Browser에서는 모두 태그 보정 로직이 들어가야 한다(추정)
  • 보정 태그 처리는 파싱시 처리 하는게 Tokenize 할 때 보다 빠르다.
  • Open,Close가 쌍을 이루는 문법은 STACK활용하는걸 고려 해볼 만 합니다.

HTML Grammar 입니다.

http://www.cl.cam.ac.uk/~jac22/books/www/book/node162.html

보시면 아시겠지만, 중,고급이 아닐 경우 배보다 배꼽이 더 커지는 경우가 생깁니다.

 

http://stackoverflow.com/questions/5175840/is-html-a-context-free-language

스택 오버플러에서도 한마디 했군요.

 

 

쌍이 안맞는 태그를 예시로 보겠습니다.

view-source:http://www.ppomppu.co.kr/zboard/zboard.php?id=ppomppu2

 

아래 항목은 끝부분에 close 를 알려주는 태그 입니다.

하지만 아래 항목은 다릅니다. Close 표시가 없습니다.

위의 경우 open은 있고, close가 없기에 child TAG추가 유무를 알 수 없습니다.
선택은 보정 로직 또는 해당 태그를 핸들링 코드 처리 입니다.

 

저는 보정 로직 적용 하는걸로 가닥을 잡았습니다.

보정 로직이 적용된 로그 입니다.

보시면 Form 시작의 depth가 8 입니다.

해당 태그의 MAX depth 의 경우 29까지 가네요.

다시 depth 8까지 보정 로직이 적용 된 후의 모습입니다.

 

추후 복잡한 쇼핑몰, 신문사 웹사이트 파싱 처리 하면서 개선을 해나가면 될 듯 합니다.

감사 합니다.

'습작 및 R&D' 카테고리의 다른 글

SQL PARSING – 2 (MYSQL Table Parsing)  (0) 2014.08.02
SQL Parsing – 1(Oracle Table)  (0) 2014.08.01
HTML PARSER – 2  (0) 2014.07.23
HTML Parser - 1  (0) 2014.07.23
부동산 실거래가 – 5 ( 네이버 연동 )  (1) 2014.07.14