問題タブ [anglesharp]
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.
c# - AngleSharp で特定の要素のみを読み込むにはどうすればよいですか?
現時点でAngleSharpを使用してHTML5を解析していますそれ?つまり、特定の要素を直接解析し、構造が実際に HTML5 であることを検証しますか?
c# - AngleSharp を使用したリソース ファイルの読み込み
AngleSharp および AngleSharp.Scripting.Javascript の nuget パッケージを空のプロジェクトにインポートして、javascript/css を適用した後に Web ページから html を解析できるかどうかを確認しました (ヘッドレス ブラウザーのように)。
http://pycoders.com/archive/ (ブラウザーで JavaScript を使用して入力されたニュースレターのアーカイブに移動します) をテスト URL として使用しています。
インラインJavaScript機能を示す基本的なサンプルスクリプトは私にとっては機能し、JavaScriptはhtmlがロードされた後に処理されます...しかし、実際のWebページをvar document = await browseingContext.OpenAsync(new Url("http://pycoders.com/archive/"), CancellationToken.None);
ロードしても、外部ファイルリソースからロードされたスクリプト/ CSSは処理されません。
この問題をデバッグしようとした結果、IResourceLoader インターフェイスを、AngleSharp に含まれるデフォルトの ResourceLoader のコピーとして自分のプロジェクトに実装することになりました。ウェブサイトに対してファビコン リソース応答ストリームが返されるようですが、最初のスタイル リソース ファイル ( https:/ /s3.amazonaws.com/pycoders2/css/bootstrap.css ) は WebRequest によって ResponseStream にロードされません。
上記の css リソース ファイルの場合、実行中のコードは行に到達します_http.BeginGetResponse(ReceiveResponse, null);
が、RecieveResponse
メソッドは呼び出されません。
誰かがAngleSharpでリソースをロードするのを手伝ってくれることを願っています.AngleSharpは下降したhtmlパーサーのように見えます.javascript/cssの前処理はそれをうまく締めくくり、phantomjsとSeleniumの必要性を取り除きます.
編集:
HTML がレンダリングされるときに現在実行中のリソース タスクの詳細は次のとおりです。
https://s3.amazonaws.com/pycoders2/img/favicon.ico - RanToCompletion
https://s3.amazonaws.com/pycoders2/img/favicon.ico - RanToCompletion
https://s3.amazonaws.com/pycoders2/css/bootstrap.css - WaitingForActivation
https://s3.amazonaws.com/pycoders2/css/main.css - WaitingForActivation
http://fonts.googleapis.com/css?family=Lato:300,400,900 - RanToCompletion
https://s3.amazonaws.com/pycoders2/img/header.png - WaitingForActivation
http://us4.campaign-archive1.com/generate-js/?u=9735795484d2e4c204da82a29&fid=1817&show=200 - RanToCompletion
https://code.jquery.com/jquery-1.10.2.min.js - RanToCompletion
https://s3.amazonaws.com/pycoders2/js/bootstrap.min.js - WaitingForActivation
c# - トラバーサル中に変化するツリーを再帰的に反復するにはどうすればよいですか?
AngleSharp
HTMLパーサーを使用してノードを置換および削除し、DOMツリーをトラバースしようとしています。この問題はこのライブラリに固有のものではなく、ツリーを再帰的に変更し、ツリー全体を確実に走査する方法に関する一般的な質問です。
このリスト を見てくださいmyCollection
。ここで、各エントリはノード オブジェクトであり、子を持つ可能性があります。ライブ コレクションでもあります。
再帰関数でループを開始します。
C
ノードをその子に置き換えることにしたとしましょう。したがって、リストは次のようになります。
これの問題は、再帰が間違っていることです。Length
for ループで説明されているよりも多くのノードが存在するため、すべての項目が再帰されるわけではありません。同様に、ノードを削除すると、リスト内で上に移動したノードがスキップされます。
再帰処理の結果として変更される可能性のあるツリーを再帰するにはどうすればよいですか? 唯一の方法は変更が加えられていないことを確認するまで、リストを何度も再帰していますか、それとも問題へのアプローチが間違っていますか?
c# - AngleSharp と LINQ を使用して Web サイトからデータを抽出する方法は?
以下のサイトから価格を抽出しようとしています。抽出にはAngleSharpを使用しています。ウェブサイトでは、価格は以下のとおりです (一例として)。
抽出には次のコードを使用しています。
ただし、アイテムを取得していませんが、ウェブサイトにはあります。私は何を間違っていますか?AngleSharpが推奨される方法ではない場合、何を使用すればよいですか? また、どのコードを使用すればよいですか?
c# - クエリに一致するリンクの一意のリストを取得する
angleharp を使用して Web ページを解析し、連絡先ページである可能性のあるリンクを検出しています。
これが私のコードです:
動作しますが、連絡先で PathName 値が重複しています。それぞれに対して 1 つの値のみを取得したいのですPathName
が、select/distinct が機能していません。
独自のカスタム比較子を作成する必要がありますか、または linq クエリを変更する方法はありますか? ホストとパス名だけで、他のデータは必要ありません。
anglesharp - AngleSharp のテキスト ノードに HTML を挿入するにはどうすればよいですか?
AngleSharp でドキュメントを解析しています。テキスト ノード (NodeName: "#text") があり、そこに HTML を挿入したいと考えています。確かに NodeValue を好きな値にリセットできますが、それでもテキスト ノードであるため、すべての角かっこはエスケープされます。
テキスト ノードの文字列値を取得し、そこに HTML を挿入し、その HTML が元のテキスト ノードに取って代わる解析済み DOM 表現を取得するにはどうすればよいですか?
c# - AngleSharp リターン スパン ID
HTML の特定の部分を返すことで、AngleSharp を把握しようとしています。
これまでのところ、それは私のコードです:
返してほしいのは、現在のアーティストで、次の html にある必要があります。
しかし、私は間違いを犯したようです....だから、誰かがここで私を助けて説明してくれたらうれしいです...
回答してくださった皆様、ありがとうございました。:)
c# - 複数の CSS 宣言を短縮形に組み合わせる方法
私は、AngleSharpを使用していくつかの CSS ファイルを解析し、それらの構造を比較して、それらから出力ファイルを作成しています。ツールは、すべての宣言を明示的にします。つまり、ソース ルールが次の場合です。
AngleSharp から次の出力が得られます。
これは、ルールを比較して変更を検出するのに適していますが、問題は、このルールを上記のような短縮形にどのように組み合わせることができるかということです。
したがって、別の例として、これから取得する方法は次のとおりです。
これに
CSS3宣言では実際に多くのパラメーターを使用できるため、状況はさらに悪化します...いくつかのCSS縮小/醜化ツールをチェックしましたが、ほとんどの場合、正規表現を使用して空白と小さな最適化を削除します。複数の宣言から最適な省略形を記述する既知の方法/ツール/ライブラリはありますか?