使用 .net 从 html 页面分析(提取)内容
Parse (extract) content from a html page using .net
我需要从html页面解析/提取信息。基本上,我正在做的是使用System.Net.WebClient将页面加载为字符串,并使用HTML Agility Pack在html标签(表单,标签,输入等)中获取内容。
但是,某些内容位于javascript脚本标记中,如下所示:
<script type="text/javascript">
//<![CDATA[
var itemCol = new Array();
itemCol[0] = {
pid: "01010101",
Desc: "Some desc",
avail: "Available",
price: "$10.00"
};
itemCol[1] = {
pid: "01010101",
Desc: "Some desc",
avail: "Available",
price: "$10.00"
};
//]]>
</script>
那么,如何将其解析为 .NET 中的集合呢?HTML Agility Pack 能帮上忙吗?我真的很感激任何帮助。
提前谢谢。
HAP 不会为你解析出 javascript - 它能做的最好的事情就是解析元素的内容。
javascript.net 可能符合要求。
你想要脚本标签中的哪一部分内容?您期待什么样的收藏。您始终可以使用以下内容选择脚本标签
HtmlDocument document = new HtmlDocument();
document.Load(downloadedHtml);
XPathNavigator n = document.CreateNavigator();
XPathNodeIterator scriptTags = n.Select("//script");
foreach (XPathNavigator nav in scriptTags)
{
string innerXml = nav.InnerXml;
// Parse inner xml using regex
}
使用 javascript.net 库可以获得一个集合
using (JavascriptContext context = new JavascriptContext())
{
context.SetParameter("data", new MyObject());
StringBuilder s = new StringBuilder();
foreach (XPathNavigator nav in scriptTags)
{
s.Append(nav.InnerXml);
}
s.Append(";data.item = itemCol;");
context.Run(s.ToString());
MyObject o = context.GetParameter("data") as MyObject;
然后只需有一个数据结构,例如
class MyObject
{
public object item { get; set; }
}
相关文章:
- 如何从javascript中的复选框中提取内容
- 在IE9下提取IFrame的XML内容
- 简斯 |尝试从文本输入中提取内容时接收 NaN 作为输出
- 如何使用 gwt 从给定 URL 的文档中提取内容
- 从文本文件中提取内容不起作用 JavaScript
- RegEx-匹配简单的集合语法并提取内容
- 如何从.txt文件中提取内容并在HTML中随机显示一行
- 从网页中提取内容并使用Java进行比较
- jQuery html onclick存储锚点ID,然后从javascript数组中提取内容
- 使用Jquery从结果中提取内容
- 解析网页以提取内容
- 如何使用Javascript从另一个内容中提取内容
- 正则表达式提取内容
- 使用jQuery从RSS提要中提取内容
- 如何从显示XML数据的页面中提取内容
- jQuery提取内容,切换内容,用新标签包装
- 设置选项卡从html文件中提取内容,可以'Don’我做得不对
- 使用Selenium自动化图表,通过鼠标悬停在图表上提取内容
- JS/jQuery:是否可以从浏览器中提取内容's控制台
- .load() 没有从 html 文件中提取内容