gpt4 book ai didi

c# - FizzlerEx/HtmlAgilityPack QuerySelectorAll 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 19:12:50 25 4
gpt4 key购买 nike

我一直在尝试设置 FizzlerEx,可在 http://fizzlerex.codeplex.com/ 找到.将引用添加到我的项目后,我尝试运行网站上给出的示例代码 - 下面列出了我的全部代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HtmlAgilityPack;
using Fizzler.Systems.HtmlAgilityPack;


namespace Fizzler_Test
{
class Program
{

static void Main(string[] args)
{
var web = new HtmlWeb();
var document = web.Load("http://example.com/page.html");
var page = document.DocumentNode;

foreach (var item in page.QuerySelectorAll("div.item"))
{
var title = item.QuerySelector("h3:not(.share)").InnerText;
var date = DateTime.Parse(item.QuerySelector("span:eq(2)").InnerText);
var description = item.QuerySelector("span:has(b)").InnerHtml;
}
}
}

但是,这会产生构建错误,并声称:

Error   1   'HtmlAgilityPack.HtmlNode' does not contain a definition for 'QuerySelectorAll' and no extension method 'QuerySelectorAll' accepting a first argument of type 'HtmlAgilityPack.HtmlNode' could be found (are you missing a using directive or an assembly reference?)

看起来 QuerySelectorAll 实际上并不是 HtmlNode 的一部分,但考虑到这是从网站上逐字逐句获取的官方示例代码,我希望创建者了解他们的库是如何工作的。我不知道实际问题是什么。

这里似乎发现了一个相关的问题,但一直没有找到合适的答案:Fizzler and QuerySelectorAll

最佳答案

It would seem that QuerySelectorAll is not actually a part of HtmlNode, but given that this is the official example code taken verbatim from the website, I'd expect the creators understand how their library works. I'm at a loss as to what the actual issue could be.

你对这部分是正确的。尽管您对第二部分的看法不正确,因为 HAP 的作者不是 FizzlerEx 的作者。问题出在别处。 只需查看错误,您就可以获得解决此问题所需的唯一线索。

Error   1   'HtmlAgilityPack.HtmlNode' does not contain a definition for 'QuerySelectorAll' and no extension method 'QuerySelectorAll' accepting a first argument of type 'HtmlAgilityPack.HtmlNode' could be found (are you missing a using directive or an assembly reference?)

那么,我们得到了什么;它告诉我们在命名空间 HtmlAgilityPackHtmlNode 类中没有名为 QuerySelectorAll 的方法。如果我们看一下 HAP 的源代码,您可以很容易地确定错误消息确实是正确的,因为在我们正在查找的类中没有该名称的方法。

Source code for HtmlAgilityPack.HtmlNode - class

我们想使用但找不到的方法在哪里?

here , 在 Fizzler.Systems.HtmlAgilityPack.HtmlNodeSelection 类中。

在尝试了一些事情之后,我让代码按原样完美运行。问题是 Fizzler 和 HAP 源代码之间引用的扩展。

如果您下载 Fizzler,您会同时获得 HtmlAgilityPack。当您在 Visual Studio 中添加引用时(假设您使用它),仅添加

  • Fizzler.Systems.HtmlAgilityPack.dll
  • HtmlAgilityPack.dll

清理您的解决方案并重建它,它应该可以工作!

关于c# - FizzlerEx/HtmlAgilityPack QuerySelectorAll 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19413392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com