我正在尝试解析Hotpads中的HTML并且对如何获取脚本标记并将其中的一部分映射到Json对象感到困惑。通过使用HTMLAgilityPack我已经加载了一个示例url并且它在它寻找的地方中断了标签。我计划在
之后反序列化它主要方法
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();
}
脚本标记:
<script>
window.__PRELOADED_STATE__ = {{SOME JSON HERE}}
<script>
型号:
public class Contact
{
public string DATA_MODEL { get; set; }
public string companyName { get; set; }
public string contactName { get; set; }
public string contactPhone { get; set; }
}
答案 0 :(得分:0)
我想你只是忘了用xpath表达式中的'script'标签替换'a'标签。我目前无法验证代码,但您可以使用chrome dev工具通过在搜索窗口中预期并使用它来测试这些工具。
我将其修改为具有脚本标记,而且它使用chrome dev工具为我工作。这是我在页面上尝试的xpath:
//script[contains(.,'window.__PRELOADED_STATE__')]