获取网页源码问题,可以指教下吗 有一种在浏览器地址栏输入javascript代码显示网页加密前的源代码 那么如何用WebClient或者其他的实现用这个javascript代码下载网页的源码啊?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你所說的“在浏览器地址栏输入javascript代码显示网页加密前的源代码”指的是什么?能舉個例子嗎? string html=WebClient.DownloadString("http://www.baidu.com");试试看,html变量就是存储的html代码。 比如在百度网页 在地址栏里把www.baidu.com改成javascript:jannick=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=jannick; 回车就显示源代码啦,对于一些加密过源码的网页也可以显示出来,我怎么下载这源码呢?要用上这个javascript代码 用HttpAnalyzer(这是专门分析Http协议的)看看有没有发送请求给服务器,如果有也许下边的例子会对楼主有所帮助/// <summary> /// 通过HttpHeader,cookie,PostData(byte[])返回网页文本字节流并获取HTTP头 /// </summary> /// <param name="server"></param> /// <param name="URL"></param> /// <param name="byteRequest"></param> /// <param name="cookie"></param> /// <param name="header"></param> /// <returns></returns> public static byte[] GetHtmlByBytes(HttpHeader httpHeader, byte[] byteRequest, ref string cookie, out string header) { HttpWebRequest httpWebRequest; HttpWebResponse webResponse; Stream getStream; httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(httpHeader.SubmitWebPag); CookieContainer co = new CookieContainer(); co.SetCookies(new Uri(httpHeader.Host), cookie); httpWebRequest.CookieContainer = co; httpWebRequest.ContentType = httpHeader.ContenType; httpWebRequest.Accept = httpHeader.Accept; httpWebRequest.Referer = httpHeader.Referer; httpWebRequest.UserAgent = httpHeader.UserAgent; httpWebRequest.Method = httpHeader.Method; httpWebRequest.ContentLength = byteRequest.Length; Stream stream; stream = httpWebRequest.GetRequestStream(); stream.Write(byteRequest, 0, byteRequest.Length); stream.Close(); webResponse = (HttpWebResponse)httpWebRequest.GetResponse(); header = webResponse.Headers.ToString(); cookie = webResponse.Headers.Get("Set-Cookie"); getStream = webResponse.GetResponseStream(); byte[] outBytes = ReadFully(getStream); getStream.Close(); return outBytes; } private string getHtml(string url, string charSet) { WebClient myWebClient = new WebClient(); myWebClient.Credentials = CredentialCache.DefaultCredentials; byte[] myDataBuffer = myWebClient.DownloadData(url); string strWebData = Encoding.Default.GetString(myDataBuffer); Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline); string webCharSet = charSetMatch.Groups[2].Value; if (charSet == null || charSet == "") charSet = webCharSet; if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default) strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer); return strWebData; } document.documentElement.outerHTML获取网页源码还可使用Set xmlobject = CreateObject("Microsoft.XMLHTTP") xmlobject.Open "GET", strURL, False xmlobject.Send 或webbrowser c#程序中能潜入excel么?用什么组件? 想采集CSDN的帖子 地址栏参数传递问题 打印机控制切刀问题 引用webservice中的类的问题 .net 2.0 网站调用com出现问题,求助!! 在Tree中,如何实现动态对checkbox的使用,急呀,就等你们了............ append的用法 谁帮忙翻译下java代码成c# C#法开发的数据库程序怎样打包才到其它的电脑上运行 .Net框架到底该如何学习和掌握才会事半功倍,请有经验者指教 异步请求为什么会报InvalidCastException 错误?
试试看,html变量就是存储的html代码。
回车就显示源代码啦,对于一些加密过源码的网页也可以显示出来,我怎么下载这源码呢?要用上这个javascript代码
/// <summary>
/// 通过HttpHeader,cookie,PostData(byte[])返回网页文本字节流并获取HTTP头
/// </summary>
/// <param name="server"></param>
/// <param name="URL"></param>
/// <param name="byteRequest"></param>
/// <param name="cookie"></param>
/// <param name="header"></param>
/// <returns></returns>
public static byte[] GetHtmlByBytes(HttpHeader httpHeader, byte[] byteRequest, ref string cookie, out string header)
{
HttpWebRequest httpWebRequest;
HttpWebResponse webResponse;
Stream getStream; httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(httpHeader.SubmitWebPag);
CookieContainer co = new CookieContainer();
co.SetCookies(new Uri(httpHeader.Host), cookie);
httpWebRequest.CookieContainer = co; httpWebRequest.ContentType = httpHeader.ContenType;
httpWebRequest.Accept = httpHeader.Accept;
httpWebRequest.Referer = httpHeader.Referer;
httpWebRequest.UserAgent = httpHeader.UserAgent;
httpWebRequest.Method = httpHeader.Method;
httpWebRequest.ContentLength = byteRequest.Length;
Stream stream;
stream = httpWebRequest.GetRequestStream();
stream.Write(byteRequest, 0, byteRequest.Length);
stream.Close();
webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
header = webResponse.Headers.ToString();
cookie = webResponse.Headers.Get("Set-Cookie");
getStream = webResponse.GetResponseStream();
byte[] outBytes = ReadFully(getStream);
getStream.Close();
return outBytes;
}
{
WebClient myWebClient = new WebClient(); myWebClient.Credentials = CredentialCache.DefaultCredentials;
byte[] myDataBuffer = myWebClient.DownloadData(url);
string strWebData = Encoding.Default.GetString(myDataBuffer);
Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string webCharSet = charSetMatch.Groups[2].Value;
if (charSet == null || charSet == "")
charSet = webCharSet;
if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);
return strWebData;
}
还可使用
Set xmlobject = CreateObject("Microsoft.XMLHTTP")
xmlobject.Open "GET", strURL, False
xmlobject.Send
或webbrowser