5

私はFizzlerを html パーサーとして、jQuery を selector のように見つけました。しかし、ビジュアルスタジオはQuerySelectorAllメソッドを解決できないようです.

ここに私のコードがあります:

using HtmlAgilityPack;
HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument document = web.Load(url);
var c = document.QuerySelectorAll('div');

私は参照を逃しましたか?

編集: いくつかの検索の後、Fizzlerを使用するためのこのコードを見つけました

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
const string search = "td";
SelectorGenerator<HtmlNode> selectorGenerator1 = new SelectorGenerator<HtmlNode>(new HtmlNodeOps());
HumanReadableSelectorGenerator selectorGenerator2 = new HumanReadableSelectorGenerator();
Parser.Parse(search, new SelectorGeneratorTee(selectorGenerator1, selectorGenerator2));
var c =  selectorGenerator1.Selector(Enumerable.Repeat(doc.DocumentNode, 1)).ToList();

私はまだ私の質問に対する良い答えを探しています。

4

5 に答える 5

6

おそらくこれ:

using Fizzler.Systems.HtmlAgilityPack;

私の C# jQuery ポートである CsQuery も試してみてください: https://github.com/jamietre/CsQuery

var dom = CQ.CreateFromUrl(url);
var c = dom["div"];

.. さらに、jQuery で慣れ親しんだすべての機能を備えています。

于 2012-06-07T18:25:00.313 に答える
0

私は同じ問題を抱えていて、それを解決しました。多分あなたは私の同じ過ちを犯しました。いくつかの構成ファイルでアセンブリを定義しました。すべてを削除してパッケージを再度インストールすると、うまく機能していました。

  • nuget マネージャーで をFizzlerアンインストール します。Fizzler.Systems.HtmlAgilityPack
  • これらの dll をすべて bin および debug フォルダーから削除します。
  • appconfig および webconfig でこれらの dll に関するすべての依存関係アセンブリを削除します
  • の最新バージョンFizzlerFizzler.Systems.HtmlAgilityPackパッケージを管理ナゲット パッケージにインストールします。

    その後、QuerySelectorAllどこでもエラーなしで他のメソッドを使用できます。

HtmlAgilityPack を単独でインストールしないでください。Fizzler をインストールすると、HtmlAgilityPack が自動的にインストールされます。

于 2016-11-14T11:00:32.613 に答える
0

QuerySelectorAll を使用する場合は、配列を作成して div が null でないかどうかを確認してから、queryselector を使用できます。

 HtmlNode[] test= html.DocumentNode.QuerySelectorAll("div.hlogo").ToArray();
      for (int rowcounter = 0; rowcounter < test.Count(); rowcounter++)
       {
      var logoname = test[rowcounter].QuerySelector("a").InnerText;    
       }
于 2014-04-04T14:42:54.430 に答える