-2

在这个 Url 上有我想挖掘的文字

http://www.mefik.co.il/provider.asp?provider_id=10757

我正在寻找“big_obj_px_news_page”类

尝试了各种 xpath 选项。

有什么帮助吗?

4

2 回答 2

1

我建议您安装 Firefox+Firebug+Firepath 来验证您的 xpath。您的 xpath 很接近,但还不够。

//div[@class='big_obj_px_news_page']

// or if this div may have more class names
//div[contains(@class, 'big_obj_px_news_page')]
于 2013-05-28T22:58:58.080 回答
0

我使用以下代码创建了一个单元测试:

using System;
using System.IO;
using HtmlAgilityPack;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Xml;

namespace HtmlAgilityPackTests
{
    [TestClass]
     public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\test.html"));
            var item = doc.DocumentNode.SelectNodes("//*[contains(@class,     'big_obj_px_news_page')]");
            Assert.IsNotNull(item);
        }
    }
}

此测试通过提供的页面上的确切 html。在您编写的代码var item = doc.DocumentNode.SelectNodes(Xpath)中,您是在上面输入确切的 xpath 字符串,还是在尝试使用 xpath 对象?

如果您使用的是 XPath 对象,则可能是您错误地设置了 XPath 对象。我看到的唯一其他选择是您没有正确加载 Html。在上面的单元测试代码中,“test.html”包含来自您提供的页面的完整 html 源代码,并且与 c# 源代码位于同一目录中。在 Visual Studio 的 test.html 文件属性窗口中,我已将“复制到输出目录”设置为“如果较新则复制”。它的构建动作是“内容”。

也许如果您描述了如何加载 html,我们可以提供进一步的帮助。

于 2013-05-28T22:59:51.997 回答