protected void btn_OnClick(object sender, EventArgs e)
{
ExecAspxToHtml(@"/Default.aspx", @strSaveFile, "test.html");
}
/// <summary>
/// 将Url放到Path目录下,保存为FileName
/// </summary>
/// <param name="Url">aspx页面url</param>
/// <param name="Path">生成html文件的保存路径</param>
/// <param name="FileName">生成html文件的文件名</param>
/// <returns></returns>
public bool ExecAspxToHtml(string Url, string Path, string FileName)
{
try
{
System.Web.UI.Page myPage = new Page(); //System.Web.UI.Page中有个Server对象,我们要利用一下它
StreamWriter sw = new StreamWriter(Path + FileName, false, System.Text.Encoding.GetEncoding("GB2312"));
//新建一个文件Test.htm,文件格式为GB2312
//sw.Write(GetWebContent(HttpContext.Current.Request.Url.Host + Url));
sw.Write(GetWebContent("http://localhost:4300" + Url));
//strHTML.Close(); //关闭StringWriter
sw.Close(); //关闭StreamWriter
return true;
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
return false;
}
} #region 抓取指定URL的HTML内容
/// <summary>
///
/// </summary>
/// <param name="Url"></param>
/// <returns></returns>
private string GetWebContent(string Url)
{
string strResult = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Timeout = 300000;
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding(response.CharacterSet);//response.CharacterSet);//"GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch
{
strResult = "抓取出错了!";
}
return strResult;
}
#endregion页面已生成,现在问题是首页有动态部分。
(您好,欢迎来采购者! 欢迎登录 gdlc 进入会员中心 注销)这个部分该如何解决
2 使用脚本程序例如JS,发布时动态生成JS,在js中使用document.write将“后台”变量写出来。