首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用HtmlAgilityPack和Json解析网页

用HtmlAgilityPack和Json解析网页
EN

Stack Overflow用户
提问于 2018-06-12 10:11:12
回答 1查看 582关注 0票数 1

我正在尝试解析Hotpads中的超文本标记语言,我对如何获取、提取脚本标记并使用HTMLAgilityPack将其部分映射到Json object.By中感到困惑。我加载了一个示例url,但它中断了查找该标记的位置。之后,我计划将其反序列化。

Main方法

代码语言:javascript
复制
   private static void ParseSite()
    {
        var url = "https://hotpads.com/308-s-9th-dr-ponte-vedra-beach-fl-32082-syw3eh/building";
        var web = new HtmlWeb();
        var doc = web.Load(url);

        var link = doc.DocumentNode.SelectSingleNode("//a[contains(.,'window.__PRELOADED_STATE__')]");

        if (link != null)
        {
            Console.WriteLine(link.InnerText);
        }
        Console.ReadLine();
    }

脚本标签:

代码语言:javascript
复制
<script>
 window.__PRELOADED_STATE__ = {{SOME JSON HERE}}
<script>

型号:

代码语言:javascript
复制
public class Contact
{
    public string DATA_MODEL { get; set; }
    public string companyName { get; set; }
    public string contactName { get; set; }
    public string contactPhone { get; set; }
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-15 05:58:18

我想您只是忘了在xpath表达式中将'a‘标记替换为'script’标记。我现在不能在代码中验证,但你可以使用chrome dev工具来测试它们,方法是转到expect并在搜索窗口中使用它。

我将其修改为使用script标记,并使用chrome dev工具对其进行了修改。这是我在页面上尝试的xpath:

代码语言:javascript
复制
//script[contains(.,'window.__PRELOADED_STATE__')]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50808337

复制
相关文章

相似问题

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