Я пытаюсь очистить сайт, используя библиотеку clojure. Соответствующий селектор CSS:Как написать следующий clojure recive селектор?
body > table:nth-child(2) > tbody > tr > td:nth-child(3) > table > tbody > tr > td > table > tbody > tr:nth-child(n+3)
Я тестировал вышеуказанный селектор с помощью jquery, и он работает. Но я не знаю, как перевести вышеприведенный синтаксис синтаксиса. Я попытался написать что-то по строкам:
(ns vimindex.core
(:gen-class)
(:require [net.cgrand.enlive-html :as html]))
(def ^:dynamic *vim-org-url* "http://www.vim.org/scripts/script_search_results.php?order_by=creation_date&direction=descending")
(defn fetch-url [url]
(html/html-resource (java.net.URL. url)))
(defn scrape-vimorg []
(println "Scraping vimorg")
(println
(html/select (fetch-url *vim-org-url*)
[:body :> [:table (html/nth-child 2)] :> :tbody :> :tr :> [:td (html/nth-child 3)] :> :table :> :tbody :> :tr :> :td :> :table :> :tbody :> [:tr (html/nth-child 1 3)]])))
; body > table:nth-child(2) > tbody > tr > td:nth-child(3) > table > tbody > tr > td > table > tbody > tr:nth-child(n + 3)
; Above selector works with jquery
(defn -main
[& args]
(scrape-vimorg))
Но я получаю пустой ответ. Не могли бы вы рассказать мне, как перевести указанный выше CSS-селектор в синтаксисе призыва.
Большое спасибо.
Отредактировано: Включить полный код.
благодарит за быстрый ответ. Я внес изменения, предложенные вами, но это все еще не сработало. Я все еще получаю пустой ответ. Я редактировал свой вопрос, чтобы включить полный код. – Rohit
Здесь есть много способов заблудиться. Сначала я предложил бы работать с более простым выбором. Тройная вложенная таблица - это пример грубого способа обучения Enlive. Расширение селектора по одному - это хороший способ найти, где он ломается. Кроме того, код, который вы предоставили, не очень полезен. Как насчет размещения узлов Enlive? – jmargolisvt