我一直试图解析一段时间php生成的网页(不是网站)。我尝试通过C#中的HTMLAgility和PHP来使用xpath进行解析。起初我以为我不是正确解析,由于不正确的值。从web脚本解析脚本更改源代码内容?
后来,我发现实际上我正确解析它。但是在该页面中有一个脚本正在更改加载时的值。怎么样,我不知道。
我是新来解析,所以这里是根据我发生了什么:
我下载内容的源代码。我想分析的部分是有点像这样:
<b id="solved_b">0</b>
页面加载时,在源代码中的脚本时,我解析使用XPath的值变化大于0
以外的东西,原始值,即0被解析,而不是脚本更改值。
那么,我该如何解析更改后的值而不是原来的值呢?
我试图解析页面 http://felix-halim.net/uva/hunting.php?id=59756
这里是HTMLAgility的片段:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HtmlAgilityPack;
namespace ParseFelix {
class WebParser {
string webUrl;
public WebParser(string url) {
webUrl = "http://felix-halim.net/uva/hunting.php?id=59756";
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmldoc = htmlWeb.Load(webUrl);
var username = htmldoc.DocumentNode.SelectSingleNode("/html/body/div/h2/i");
var submittedStats = htmldoc.DocumentNode.SelectSingleNode(".//*[@id=\"submissions_b\"]");
string content = htmldoc.DocumentNode.InnerHtml;
//System.IO.File.WriteAllText("D:\\exp\\felix\\parsed.txt", content);
var acceptedStats = htmldoc.DocumentNode.SelectSingleNode(".//*[@id=\"solved_b\"]");
Console.WriteLine("Username is {0}, you submitted {1} solutions, and {2} were accepted", username.InnerText, submittedStats.InnerText, acceptedStats.InnerText);
}
}
}
我会尽力的。感谢您的回复:D – LordAmit 2011-04-15 05:47:37
可以请您提供一些关于如何阅读操作DOM的教程? – LordAmit 2011-04-15 07:02:05
不像前面提到的那样,你必须编写自己的JS解析器,并连接到你不想听的事件。 – 2011-04-15 07:29:14