首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HtmlAgilityPack DocumentNode.ChildNodes返回空节点

HtmlAgilityPack DocumentNode.ChildNodes返回空节点
EN

Stack Overflow用户
提问于 2018-06-06 03:33:28
回答 1查看 298关注 0票数 -1

我用Java构建了一个price comparison site的网站爬虫,并想在C#中重新实现它。我在Java中使用了Jsoup,而HtmlAgilityPack ( HAP )是.NET的一个很好的对应物,在爬取了这个site的一个示例产品后,我注意到HAP返回的是空的html节点。当我查看该站点时,它们不是原始html的一部分。该节点只包含像"\n\t\t\t\t"这样的格式化符号。Jsoup没有显示这种行为,所以我很好奇HAP在那里做什么。我如何检索我的节点的一个小代码示例:

using Fizzler.Systems.HtmlAgilityPack; // Without that I can't retrieve nodes 
                                      // by searching for a certain class
[...]
var client = new WebClient()
{
    Encoding = Encoding.UTF8
};
var doc = new HtmlDocument();
var html = client.DownloadString("https://www.idealo.de/preisvergleich/OffersOfProduct/5473234);
doc.LoadHtml(html);
var root = doc.DocumentNode;
var data = root.QuerySelector(".pageContent-wrapper").FirstChild;

这段代码返回一个内容为"\n\t\t\t\t"的空节点,而它应该返回一个包含javascript内容的脚本节点。

关键html部分:

<main class="pageContent-wrapper">
<!-- Here is nothing!-->
            <script type="application/ld+json">{...json...}</script>

为什么<script>不是直接的子节点,而是一些空节点?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档