問題タブ [csquery]
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.
asp.net - ASP.NET - 送信前に HTML を解析/クエリし、CSS クラス参照を挿入する
Web 開発者として、CSS に多くの時間を費やしていると感じています。ASPX や ASCX ファイルなどの追加コードやコード ビハインド ファイルを使用せずに、再利用可能な CSS、つまりクラスを作成し、HTML でこれらのクラスを参照できるソリューションを考え出そうとしています。HTML 要素を CSS クラスにリンクする仲介者が必要です。
私が達成したいこと:
- 送信直前にHTMLを修正
- HTML の要素を選択する
- 他の場所で定義されたルールに基づいて (たとえば、現在処理中のページに関連するテキスト ファイルで):
- 複数の HTML 要素への CSS クラス参照の追加
- 複数の CSS クラス参照を単一の HTML 要素に追加する
これがどのように機能するかを想像する方法:
- 最終的な HTML を生成する ASP.NET 関数を拡張する
- すべての HTML を文字列として取得します
- クエリ (XPATH など) メソッドを使用してオブジェクトのコンストラクターに文字列を渡します。
- グローバル ルールのリストを調べます。たとえば
ul
、firstdiv
thenの子などclass = "navigation"
- ページ固有のルールのリストを確認する (例:
ul
firstdiv
thenの子)class &= " home"
- obj.ToString などのオブジェクトから処理された HTML を取得します
- 処理された HTML を使用してページ生成を再開する ASP.NET
だから私が知る必要があるのは:
- ASP.NET ページ生成関数をどこでどのように拡張できますか (ページのすべての HTML を取得するため)
- どのクラスが要素/ノードのクエリ メソッドと属性へのアクセスを持っているか
事前にご協力いただきありがとうございます。
PS私はISS 7で実行されているVB.netコードビハインドを使用してASP.NET WebフォームWebサイトを開発しています
html - ASP.NET-レンダリング中にHAP(HTML Agility Pack)を使用してクラス参照を追加する
HAP(HTML Agility Pack)を使用して次のことを行うことは可能ですか?
- ノードのコレクションを取得します。たとえば、
<a>
要素の子であるすべての<li>
要素 - コレクションを繰り返し処理します
- 各要素のクラス属性にCSSクラス参照を追加します。
class &= "foo"
- HTML内の元の位置でノードを更新します
ポイント4については、次のことを知る必要があります。
- ノードのコレクションを取得するとき、コピーを使用していますか?
- もしそうなら、HTML内の元の位置にあるノードを簡単に更新できますか?
最後に、ASP.NET Webサイトでページをレンダリングするときに、次のことを考慮してこれを行うのが実用的でしょうか。
- 100個以下の要素のクラス参照を変更する必要があります
- 大きなHTMLドキュメントを使用していません
- divで始まるノードを選択する予定です。たとえば
div[2]
bodyに4が含まれている場合divs
これは一連の個別の質問のように見えるかもしれませんが、実際には次の2つの質問の内訳にすぎません。
- ASP.NETページのHTML出力を簡単に変更できますか?たとえば、クラス参照を挿入できますか?
- 50〜100要素のWRT速度でこれを行うのは実用的でしょうか?たとえば、2秒以下のコストですか?
どうもありがとう。
c# - Each ブロック内の変更を永続化する
私は素晴らしいCsQueryライブラリを試してきました。これは基本的に jQuery の .NET ポートであり、os CSS セレクターと jQuery のほとんどの機能を使用できます。
私はそれを使用して、HTML ファイルのバッチを解析および編集しています (特に、さまざまな DOM 要素のいくつかの属性を編集しています)。
次の C# スニペットは、私が行っていることの一種を示しています。コメントには、JavaScript/jQuery と同等のコードが含まれています。
これは完全に機能します。出力ファイルを確認すると、すべての画像のsrc
値が#
.
とにかく、Each
ブロックを使用すると ( C# ラムダ式を使用して javascript の関数の受け渡しをシミュレートするとうまく動作するようです)、変更は出力ファイルに適用されません。
Messabox が DOM 内のすべての画像に対して "#" を表示しているにもかかわらず (これはcqElement
、変更を取得することを意味します)、出力ファイルは変更を取得しません。
問題の原因となっている重要な行はCQ cqElement = CQ.Create(element);
、新しい CsQuery オブジェクトを作成するためだと思います。実際、最初のメッセージ ボックスの直後に、次のような別のメッセージ ボックスが表示された場合、変更は行われません。cqElement
この問題をどのように解決できますか?
c# - 少し遅れて Web ページのデータを取得する (Web スクレイピング)
目的は、Web サイトが Ajax 呼び出しを終了した後で、Web サイトからデータを取得することです。現在、ページが最初に読み込まれるときにデータが取得されています。しかし、必要なデータは ajax 呼び出しの後にロードされる div 内にあります。
要約すると、シナリオは次のとおりです。
Web ページは、C# コード内で渡されたいくつかのパラメーターを使用して呼び出されます (現在、c# には CsQuery を使用しています)。リクエストが送信されると、ページが開き、「読み込み中」の画像が表示され、数秒後に必要なデータが取得されます。ただし、cSQuery コードは、「読み込み中」の画像を含む最初のページ コンテンツを取得します。
コードは次のとおりです
html - HTML 部分文字列を使用して CsQuery セレクターを高速化する
複雑で重い HTML ページを解析したいと考えています。私は最近 CsQuery について読み、 CsQuery Vs Html Agility Pack と Fizzlerのパフォーマンス比較を確認しました。これらのテストによると、CsQuery は DOM の作成時にインデックスの作成のために遅くなります。
重い html ページの特定の要素 (ID なし) を選択したいとしましょう。その先祖の ID を知っていて、それをコンテキスト要素として使用します。この重い html を DOM にロードすると、処理が遅くなるため、選択が遅くなります。ただし、HTMLをSOMEHOW FAST前処理し、コンテキスト要素(私が知っているID)を含むサブストリングを取得してDOMにロードできる場合は、より高速になります。その場合、インデクサーが作成されない不要な HTML を大量に削除したことになります。したがって、私の選択はより速くなります。
JQueryのようなものが欲しいので、CsQueryを使用しています。
私の質問は:
HTMLドキュメント文字列が与えられた場合:IDを指定してHTML要素のHTML部分文字列を取得する高速な方法(例:線形)はありますか?
c# - CsQueryまたはJint? C# での Javascript データ操作
統計目的で Web クローラーを作成しています。Web サイトは JavaScript によって動的に更新されます。HTML ファイルを解析し、すべてのスクリプト値を配列にコピーすることができました。これらのスクリプトをローカルまたはオンザフライで再実行して戻り値を取得するにはどうすればよいですか? CsQuery、Jint、またはその他の方法?
c# - li アイテムのコレクションを解析する CsQuery
これが私のコードです:
foreach ループ内で変数li
に変わり、IDomObject
それ以上ドリルダウンできなくなります。
助言がありますか?解析しようとしている HTML の例を次に示します。
各 h2 要素のテキストを取得する必要があります。
c# - CsQueryを使用してHTMLからJavaScript変数値を取得する方法
CsQueryを使用してDOMからjavascript変数値を取得するには?
asp.net - MasterPage コード ビハインドで CsQuery を使用して HTML 出力を変更しますか?
HTML 出力を変更するために、MasterPage の分離コードで CsQuery を使用するための「スケルトン」コードは何ですか? <body>
HTML のすべてを変更できるようにする必要がありますか?
CsQuery を使用して、デフォルトのコードを書き換えたりいじったりすることなく、動的データ Web サイトの HTML 出力を「修正」したいと考えています。
MasterPage コード ビハインドに固有のサンプル コードをお探しですか? ありがとう。