問題タブ [enlive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - enlive: ノードのベクトルを一緒に粉砕する
そのため、セレクターを使用して、変換を活性化するページ ノードの部分を制限できることに最終的に気付きました。これにより、交差しないノードのベクトルを作成できます。
たくさんの言葉:
したがって、これは次のようなものを返します..
これは素晴らしいです、ノードを活気づけてください!
これで、同じように動作するいくつかの変換ができました。
私の質問は、結果のベクトル (?) をすべてマッシュアップするにはどうすればよいですか?
html - 元気づけて —
& mdash; を追加しようとしています。Enliveを使用して2つのdivの間ですが、
実際のテキストを返すだけです & mdash; を描く代わりに —
考え?
clojure - 内部スパンを解析できない Enlive
Apple 製品ページhttp://www.apple.com/sg/shop/browse/home/specialdeals/ipadから生データを抽出しようとしています。
値段以外の本体内容は問題なく入手できます。
面白いことに、enlive は以下のデータしか解析できず、価格データはありません。
パーサーがサブスパン データを無視する原因となる何かが不足していますか?
clojure - 次の clojure enlive セレクターの書き方は?
clojure の enlive ライブラリを使用して Web サイトをスクレイピングしようとしています。対応する CSS セレクターは次のとおりです。
jqueryを使用して上記のセレクターをテストしましたが、動作します。しかし、上記を enlive のセレクター構文に変換する方法がわかりません。私は次の行に沿って何かを書き込もうとしました:
しかし、空の応答が返されます。上記の CSS セレクターを enlive の構文で翻訳する方法を教えてください。
どうもありがとう。
編集済み:完全なコードを含める。
clojure - enlive で httpclient からの結果を解析する方法
次のリンクで https://github.com/swannodette/enlive-tutorial/blob/master/src/tutorial/scrape1.clj
URLからページを解析する方法を示していますが、sock5プロキシを使用する必要があり、enlive内でプロキシを使用する方法がわかりませんが、httpclientでプロキシを使用する方法は知っていますが、結果を解析する方法httpclient から、次のコードがありますが、最後の行に空の結果が表示されます
clojure - enlive でアイデンティティ変換を行う方法は?
ある条件に基づいて要素のコンテンツを置き換える必要があります。条件が満たされない場合、要素はそのままにする必要があります。
恒等変換として使用しようとしましnil
たが、要素を削除するだけです。
clojure - Enlive はそのルール/変換をどのように評価しますか?
私はEnliveが好きですが、次のことを観察したときに少し混乱しました。
次の Clojure コードを検討してください ( github でも入手できます)。
この HTML テンプレート (resources/index.html) は次の場所にあります。
テンプレートを呼び出すときpage
、ルールのセレクターに一致する HTML タグがないため、ルールの右側 (変換) を完全に無視することを期待します:.foobar
。
しかし、結局のところ、ルールの右側は実際に評価されます。
(明らかに、テンプレートの各ルート HTML 要素に対して 1 回ずつ、2 回評価されることさえあります)。
しかし、セレクターに一致する要素がないのに、なぜ評価されるのでしょうか? これは正しい動作ですか?ここで明らかな何かが欠けていますか?
この例では、README が示唆しているように、Enlive 1.1.6 を使用しています。
明確化は大歓迎です。
編集#1:
結局のところ (@leetwinski のおかげで)、物事がどのように機能するかについての私の仮定は間違っていました。
deftemplate
ルールのセレクターが指定された HTML の要素と一致する場合、マクロはルールの右側 (変換部分) のみを評価すると想定していました。
しかし、これは正しいです:
ルールの右側は、定義されたテンプレート関数 (例: ) の呼び出し中に常にpage
評価され、目的のコンテンツに評価される関数 (例: "===FOOBAR===") に評価されることが期待されます。この例では)呼び出されたとき。セレクターに一致する要素に対してのみ呼び出されるのは、この関数です。
これは、 eghtml/content
がそのような関数に評価されることを意味します (目的のコンテンツに直接ではありません)。
当初の期待どおりに動作させるには、次のように記述します。
これにより、次の出力が得られます。
<div class="foobar"></div>
またはHTML テンプレートに を追加する場合:
編集#2:
数週間経ちましたが、これが Enlive にどのように実装されているのか、いまだに苦労しています。ルールの変換部分を#((html/content ...) %)
何度も何度もラップしているように見えます。
現在のレンダリング プロセスに関係がない場合でも、Enlive が変換を (一度に、または複数回) 評価する理由を説明できる人はいますか?
これが私以外の誰も気にしないように見えることに本当に驚いているので、私は何かを見落としているかもしれません.