在这个 Url 上有我想挖掘的文字
http://www.mefik.co.il/provider.asp?provider_id=10757
我正在寻找“big_obj_px_news_page”类
尝试了各种 xpath 选项。
有什么帮助吗?
在这个 Url 上有我想挖掘的文字
http://www.mefik.co.il/provider.asp?provider_id=10757
我正在寻找“big_obj_px_news_page”类
尝试了各种 xpath 选项。
有什么帮助吗?
我建议您安装 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')]
我使用以下代码创建了一个单元测试:
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,我们可以提供进一步的帮助。