Web Scraping使用非定义标签

时间:2012-07-30 19:58:12

标签: c# web-scraping

我正在尝试开发一个工具来进行网页抓取,我之前已经使用 HTML Agility Pack 对特定网站进行了此操作,但在这种情况下我希望用户能够通过选择网站上的文字来指定他想要废弃的信息。

我不知道的是,如果用户选择“产品1”,无论如何我可以获得HTML标签或其他东西,以便我可以提供算法,以便在整个文档中搜索相同类型的标签?

产品1

产品说明

价格$ 0.00

2 个答案:

答案 0 :(得分:2)

似乎想要通过特定标记查询DOM,类似于jquery选择器。看看下面的项目,它可能就是你要找的东西。

https://github.com/jamietre/csquery

答案 1 :(得分:0)

将HTML加载到HtmlDocument对象中,然后选择显示文本输入的第一个节点。该节点包含您可能需要的所有内容:

    var doc = new HtmlDocument();
    string input = "Product 1";
    doc.LoadHtml("Your HTML here"); //Or doc.Load(), depends on how you're getting your HTML

    HtmlNode selectedNode = doc.DocumentNode.SelectSingleNode(string.Format("//*[contains(text(),'{0}')]", input));

    var tagName = selectedNode.Name;
    var tagClass = selectedNode.Attributes["class"].Value;
    //etc

当然这完全取决于实际的页面结构,是否在其他任何地方显示“产品1”,页面中的其他元素是否也使用包含“产品1”的同一节点等。