HtmlAgilityPack可以在标签之间查看文本

时间:2014-10-10 20:39:13

标签: c# html web-scraping html-agility-pack

我搜索了其他问题,找不到具体的答案,因为在这种情况下,HtmlAgilityPack根本就没有看到文字。

试图抓住以下文字:"更新10月10日21:26(日本时间)"来自此网站上的

标记:

[http://www3.nhk.or.jp/nhkworld/chinese/top/news.html][1]

html代码:



<p id="update">
  <script charset="utf-8" src="/nhkworld/chinese/top/update_news.js">
    document.write('更新 10月10日 21:26(日本时间)');
  </script>
  更新 10月10日 21:26(日本时间)
</p>
&#13;
&#13;
&#13;

C#代码:

string pTag = "//p[@id='update']";
string localTime = Doc.DocumentNode.SelectSingleNode(pTag).InnerText;

我可以获得除文本之外的所有内容。如果我尝试使用InnerHtml,我得到的标签没有问题,但是当我收到文本时什么都没有。即使我使用以下内容废弃了整个页面上的所有文本:

string body = "//body";
string localTime = Doc.DocumentNode.SelectSingleNode(body).InnerText;

虽然我可以使用Python(Beaufulsoup)获取日期,但确实需要使用C#。感谢您的任何建议。

1 个答案:

答案 0 :(得分:-1)

该内容由上面标记中的脚本加载。 HtmlAgilityPack does not execute javascript所以,从它的角度来看,该标签内没有内容。

在这种情况下,该值在js文件中被硬编码。您可以使用WebClient

访问它