我正在尝试解析Hotpads中的超文本标记语言,我对如何获取、提取脚本标记并使用HTMLAgilityPack将其部分映射到Json object.By中感到困惑。我加载了一个示例url,但它中断了查找该标记的位置。之后,我计划将其反序列化。
Main方法
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; }
}
发布于 2018-06-15 05:58:18
我想您只是忘了在xpath表达式中将'a‘标记替换为'script’标记。我现在不能在代码中验证,但你可以使用chrome dev工具来测试它们,方法是转到expect并在搜索窗口中使用它。
我将其修改为使用script标记,并使用chrome dev工具对其进行了修改。这是我在页面上尝试的xpath:
//script[contains(.,'window.__PRELOADED_STATE__')]
https://stackoverflow.com/questions/50808337
复制相似问题