.NETでFizzler.Systems.HtmlAgilityPack;
を使用して、CSSセレクタを使用して要素を取得していました。今私は私のプロジェクトを.NETコアに移植しており、HtmlAgilityPack.NetCoreは利用可能ですが、 Fizzlerは存在しません。 CSSセレクタを使用するには?dotnetcoreのCSSセレクタ?
0
A
答えて
0
あなたは.NETでFizzlerを使用していたし、今、あなたは... .NETにプロジェクトを超える移植され
0
私は以下のようにHtmlAgilitypack使用:.NETでのCSSセレクタの
string url = "your URL";
HtmlWeb web = new HtmlWeb();
web.PreRequest = delegate (HttpWebRequest webRequest)
{
webRequest.Timeout = 15000;
return true;
};
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
List<HtmlNode> findclasses = doc.DocumentNode.Descendants("div").Where(d =>
d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("YourClassName")
).ToList();
0
を(それは擬似要素をサポートしていませんが)、私はいつもScrapySharpを使用。
ScrapySharp.Extensions
を使用するステートメントに追加すると、DocumentNode
など、任意のHtmlNodeオブジェクトでCssSelect
を呼び出すだけで済みます。解析およびCSS-選択するためのオールインワンパッケージ(CSSセレクタが内蔵されている)である -
using ScrapySharp.Extensions;
using HtmlAgilityPack;
namespace ConsoleLab
{
internal class Program
{
private static void Main(string[] args)
{
HtmlWeb web = new HtmlWeb();
var document = web.Load("your url");
//css class selector example
var res1 = document.DocumentNode.CssSelect(".yourClass");
//css id selector example
var res2 = document.DocumentNode.CssSelect("#yourID");
}
}
}
別の解決策は、AngleSharpを使用することです。私はこれらを使用してからしばらくしていますが、私が間違っていない場合は、シャープでcssセレクタサポートが優れています。
Anglesharp
使用例:
//parsing a http-served url (asynchronous, used .Result here for simplification, but this defeats the asynchronoability of the code)
IBrowsingContext bc = BrowsingContext.New();
Task<IDocument> doc = bc.OpenAsync("yourAddress");
//querying a single selector match
IElement element1 = doc.Result.QuerySelector(".yourSelector");
//querying multiple selector matches
IEnumerable<IElement> elements1 = doc.Result.QuerySelectorAll(".yourSelectors");
//parsing a physical html document, non-network dependent
HtmlParser parser = new HtmlParser();
IHtmlDocument doc2 = parser.Parse("htmlFile");
IElement element2 = doc.Result.QuerySelector(".yourSelector");
IEnumerable<IElement> elements2 = doc.Result.QuerySelectorAll(".yourSelectors");
関連する問題
- 1. CSSセレクタ:そのセレクタ
- 2. セレクタ内のCSSセレクタ
- 3. CSSセレクタとのCSS?
- 4. CSSセレクタ
- 5. CSSセレクタ
- 6. URLのCSSセレクタ
- 7. CSS:セレクタの後
- 8. ログアウトボタンのCssセレクタ
- 9. ドキュメントのCSSセレクタ
- 10. :(CSSセレクタ)ネジ付きセレクタ
- 11. XPath内のCSSセレクタ
- 12. セレクタ(CSSやXPathの)
- 13. Primefaceの "Element"セレクタCSS
- 14. PythonのCSSセレクタBeautifulSoup
- 15. 変換CSSのセレクタ
- 16. cssの言語セレクタ
- 17. CSSセレクタの空白
- 18. 最速のCSSセレクタ?
- 19. CSSセレクタ名のマングリング?
- 20. CSSセレクタは、
- 21. CSSセレクタここ
- 22. CSSセレクタperformace
- 23. CSS:セレクタ置換?
- 24. CSS複数セレクタ
- 25. jQuery:closest()CSSセレクタ
- 26. 親セレクタがcss?
- 27. 再帰CSSセレクタ?
- 28. CSS子孫セレクタ
- 29. CSSセレクタ:after
- 30. IE 8 CSSセレクタ
? – Veverke
@Veverke:どこかでコアを忘れていましたが、はい、.NETに.NETを移植しています –
ScrapySharpやAngleSharpは、以下に示唆しているようにどうですか?彼らは仕事をしていますか? – Veverke