2011-01-05 4 views
3

학습 연습으로 Common Lisp에 웹 스크레이퍼를 쓰고 있습니다. (거친) 계획은 다음과 같습니다잘못된 HTML을 구문 분석하기위한 일반 Lisp 패키지?

  1. 사용 Quicklisp
  2. 난 그냥 난제로 실행했습니다 xmls

로 페이지를 구문 분석 페이지를로드하는 종속

  • 사용 Drakma을 관리 할 수 : 내가 긁고있는 웹 사이트가 항상 유효한 XHTML을 생성하지는 않습니다. 즉, 3 단계 (xml로 페이지 구문 분석)가 작동하지 않습니다. 그리고 나는 정규식을 this guy :-)로 사용하는 것에 혐오 스럽다.

    그렇다면 누구나 잘못된 XHTML을 구문 분석하기 위해 Common Lisp 패키지를 추천 할 수 있습니까? 나는 HTML Agility Pack for .NET과 비슷한 것을 상상하고 있습니다 ...

  • 답변

    10

    "closure-html"프로젝트 (Quicklisp에서 사용 가능)는 가짜 HTML을 복구하고 작업 할 수있는 것을 만들어냅니다. CXML과 함께 closure-html을 사용하여 임의의 웹 페이지를 처리하며 잘 작동합니다. http://common-lisp.net/project/closure/closure-html/

    +1

    폐쇄 - HTML GNU CLISP에서 작동하지 않는 것 -하지만 (희망없이 거룩한 전쟁을 일으킴) SBCL 로의 이동은 고통 스러울 것 같습니다. 나는 아직도 Lisp 황무지에서 놀고있는 것처럼 느껴지지만, 적어도 나는 목소리를들을 수있다. 다행히도 그들은 단지 내 머리 속에 있지 않습니다 :-) –

    0

    Duncan, 지금까지 나는 Ubuntu Linux와 Windows (7 & XP) 모두에서 Clozure Common Lisp을 사용하여 성공 했으므로 어느 곳에서나 작동 할 구현을 찾고 있다면이 도구를 사용해보십시오. 다음 방문자를위한

    2

    은 : 오늘 우리는 플럼 있습니다 https://shinmera.github.io/plump

    플럼가 무효 마크 업을 향해 관대 한 것에 초점을 맞추고, 문서와 같은 HTML/XML에 대한 파서입니다. 잘못된 속성, 잘못된 태그 순서, 인코딩되지 않은 엔터티, 존재하지 않는 태그 유형, 자동 닫기 태그 등을 처리 할 수 ​​있습니다. 문서를 클래스 표현으로 구문 분석하고이를 조작 할 수있는 작은 DOM 기능 세트를 제공합니다. 당신은 자신의 수업을 파싱하기 위해 자유롭게 변경할 수 있습니다.

    하고 우리는 같은 저자에 의해 lquery (JQuery와 같은) 또는 CLSS (간단한 CSS 선택기)와 같은 문서를 조회 할 다른 libs와 있습니다.

    우리는 또한 지금 CL의 요리 책에 약간의 튜토리얼이 있습니다 https://lispcookbook.github.io/cl-cookbook/web-scraping.html

    도 참조 커먼 리스프 위키 : http://www.cliki.net/Web

    +0

    그리고 약간의 튜토리얼이 있습니다 : https://lispcookbook.github.io/cl-cookbook/web-scraping.html – Ehvince

    관련 문제