public void StaticizeTest1() { // 编号 String batchId = CreateBatchId(); // 输出文件夹 string outputDirectory = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, batchId); System.IO.Directory.CreateDirectory(outputDirectory); List<KeyValuePair<Uri, String>> pages = new List<KeyValuePair<Uri, string>>(10000); // 将下面的 URL 生成为 HTML 静态化文件,文件会生成在 bin 下 var urls = new[] { "http://www.zhihu.com/question/25519625", "http://www.zhihu.com/question/27232313", "http://www.zhihu.com/question/31291872", "http://www.zhihu.com/question/31293043", "http://www.zhihu.com/question/31318753", "http://cn.bing.com/", "http://36kr.com/" }; // 需要说明,如果页面内的图片、CSS、JS 采用相对路径 即不含(http://host/),Staticize 能够自动下载并放在文件夹中 // 但如果是绝对路径,如 http://img3.douban.com/misc/mixed_static/7011201580a8cbed.css ,则是不会下载的。 { for (int i = 1; i < urls.Length; i++) { string outputFile = System.IO.Path.Combine(outputDirectory, string.Concat("zihu-", i.ToString(), ".html")); pages.Add(new KeyValuePair<Uri, String>(new Uri(urls[i]), outputFile)); } } CreateDirectory(pages, outputDirectory); Staticizer staticize = new Staticizer(); staticize.AddBehavior( new ImageResourcesDownloadBehavior(outputDirectory) ); //staticize.AddValidation( // //验证CSS文件是否存在 // ValidationProjection.HasCssLink("/resources/css/jquery-ui-themes.css"), // ValidationProjection.HasCssLink("/resources/css/axure_rp_page.css"), // //验证网页主要页面DOM元素(id)是否存在 // ValidationProjection.HasElement("main_container"), // //验证JS文件是否存在 // ValidationProjection.HasScriptLink("/data/sitemap.js"), // ValidationProjection.HasScriptLink("/resources/scripts/jquery-1.7.1.min.js"), // ValidationProjection.HasScriptLink("/resources/scripts/axutils.js"), // ValidationProjection.HasScriptLink("/resources/scripts/jquery-ui-1.8.10.custom.min.js"), // ValidationProjection.HasScriptLink("/resources/scripts/axurerp_beforepagescript.js"), // ValidationProjection.HasScriptLink("/resources/scripts/messagecenter.js") // ); //staticize.AddValidation( // //验证 HTML Docuemnt 中引用的资源是否存在。 // ValidationProjection.ResourcesExisting(outputDirectory), // //XPath // ValidationProjection.XPathEquals("main_template.html", "main_container"), // ValidationProjection.InternalALinkExisting(outputDirectory) // ); var stepTaken = new StaticizeStepStatus(); var staticizeResults = staticize.Staticize(pages, stepTaken); var validationResults = staticizeResults.GetValidationResults(); validationResults.Save(System.IO.Path.Combine(outputDirectory, "validationResults.txt")); }