2010-04-13 2 views
4

I와 친구가 최근 Clojure IRC bot에서 링크 잡기를 구현했습니다. 링크가 보이면 페이지가 스쳐지나 페이지에서 제목을 가져옵니다. 문제는 단지 링크를 잡기 위해 전체 페이지를 스 루핑해야한다는 것입니다. 하나는 첫번째 </title>?Clojure에서 웹 페이지를 느리게 읽는 법

답변

6

사용 line-seq까지 게으르게 페이지를 읽고 가야 않고 수행 할 때 기본이되는 스트림을 닫습니다 잊지 마세요 어떻게

.

+0

line-seq을 잊어 버렸습니다. 감사. :) – Rayne

6

필자는 필연적으로 HTML을 줄 바꿈하지 않을 것입니다. 우리 자신의 뒷마당을 보지 않고도. Compojure (또는 Hiccup은 현재 추측 할 수 있습니다.) 줄 바꿈을 삽입하는 것을 방해하지 않습니다. (업데이트 : 그냥 Hiccup을 확인했습니다. 줄 바꿈이 없음).

대신 java.io.BufferedInputStream 맨 위에 지연 XML 구문 분석 (clojure.contrib.lazy-xml)을 제안합니다.

+3

BTW, 저는이 분야의 전문가는 아니지만 HTTP를 통해 페이지의 전체 소스보다 적은 것을 요청할 수 있다고 생각하지 않습니다. 어쨌든 당신은 이미지와 같은 큰 물건을 얻지 못할 것이므로 실제로는 문제가 아닙니다. 'slurp *'는 당신에게'java.io.BufferedReader'를 가져오고'cclazy-xml'은 성능을 위해 중요 할 수있는 한가지를 할 것입니다. 이것은'을 넘어 아무것도 해석하지 않습니다. ..'당신이 찾고있는 비트. (흠, 적절한 답변에 이것을 포함시켜야합니까 ...? 다음 번에는 잠시 쉬어야 할 것입니다.) –

+0

범위 헤더가 있지만 모든 서버에서 지원하지는 않습니다. –

+0

내가하는 일은별로 중요하지 않습니다. Line-seq은 내가 필요한 것을 수행한다. – Rayne

관련 문제