Как лениво читать веб-страницу в Clojure - PullRequest
4 голосов
/ 13 апреля 2010

Я и мой друг недавно осуществили захват ссылок в моем боте Clojure IRC. Когда он видит ссылку, он отбрасывает страницу и захватывает заголовок со страницы. Проблема состоит в том, что он должен * * * * * * * * * * * * ПОЛНУЮ страницу, чтобы захватить ссылку. *

Как лениво читать страницу до первого </title>?

Ответы [ 2 ]

6 голосов
/ 13 апреля 2010

Я бы не рассчитывал на то, что HTML обязательно будет разбит на строки разумным способом; не глядя за пределы нашего собственного двора, например Я полагаю, что Compojure (или, по-моему, Иккап в настоящее время) не мешает вставлять разрывы строк ( обновление: только что проверил Иккуп - нет разрывов строк).

Вместо этого я бы предложил ленивый анализ XML (с clojure.contrib.lazy-xml) поверх java.io.BufferedInputStream.

6 голосов
/ 13 апреля 2010

Используйте line-seq, но не забудьте закрыть основной поток, когда закончите.

...