获取网页源码问题,可以指教下吗

lindesuo 2009-07-22 06:01:37
有一种在浏览器地址栏输入javascript代码显示网页加密前的源代码 那么如何用WebClient或者其他的实现用这个javascript代码下载网页的源码啊??
...全文
127 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-07-22
  • 打赏
  • 举报
回复
document.documentElement.outerHTML获取网页源码
还可使用
Set xmlobject = CreateObject("Microsoft.XMLHTTP")
xmlobject.Open "GET", strURL, False
xmlobject.Send
或webbrowser
wuyq11 2009-07-22
  • 打赏
  • 举报
回复
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;
}

baiyunyinv 2009-07-22
  • 打赏
  • 举报
回复
用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;
}
lindesuo 2009-07-22
  • 打赏
  • 举报
回复
引用错啦 我要引用5楼的
lindesuo 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qjr2008 的回复:]
期待高手出现。
[/Quote]
比如在百度网页 在地址栏里把www.baidu.com改成javascript:jannick=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=jannick;
回车就显示源代码啦,对于一些加密过源码的网页也可以显示出来,我怎么下载这源码呢?要用上这个javascript代码
lindesuo 2009-07-22
  • 打赏
  • 举报
回复
不好意思 刚吃了个饭
周公 2009-07-22
  • 打赏
  • 举报
回复
string html=WebClient.DownloadString("http://www.baidu.com");

试试看,html变量就是存储的html代码。
windinwing 2009-07-22
  • 打赏
  • 举报
回复
听不懂啊 ..
blestcc 2009-07-22
  • 打赏
  • 举报
回复
你所說的“在浏览器地址栏输入javascript代码显示网页加密前的源代码”指的是什么?能舉個例子嗎?
qjr2008 2009-07-22
  • 打赏
  • 举报
回复
期待高手出现。
lindesuo 2009-07-22
  • 打赏
  • 举报
回复
有知道的没啊 在线等
yingzhilian2008 2009-07-22
  • 打赏
  • 举报
回复
Up

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧