C#不用WebBrowser直接下载网页HTML源码

网址有自动跳转有动态生成的图片和动态的代码要获得和用WebBrowser控件一样的效果就是用WebBrowser连接网页,网页自动跳转,自动完成生成代码然后点右键能获得一... 网址有自动跳转 有动态生成的图片和动态的代码
要获得和用WebBrowser控件一样的效果
就是用 WebBrowser 连接网页 ,网页自动跳转,自动完成生成代码
然后点右键能获得一个源码 ,我就是要就是这个代码

不用第三方插件或者dll 只用net2.0的内置库
只要是和使用WebBrowser获得的源码一样就可以了
因为是多线程,还要涉及到等待线程,所以不可以多线程生成控件
而且如果可以直接获得源码 也比生成控件之后获得源码要占用资源多一些

<script type="text/javascript" src="http://static.51img1.com/stats/stats_path.js?v=20091224"></script>

<script type="text/javascript" defer="defer">_51ebro.go();</script>

获得的代码都是这些,,,,怎么办?

那为什么用WebBrowser.docment.body却可以获得源码呢?
展开
 我来答
百度网友9095754
2010-06-10 · TA获得超过2574个赞
知道小有建树答主
回答量:905
采纳率:0%
帮助的人:1104万
展开全部
最简单的用WebClient:
调用方法:string html=DownloadData("http://www.baidu.com",Encoding.GetEncoding("gb2312"));

public static string DownloadData(string url,Encoding encoding)
{
WebClient web = new WebClient();
return encoding.GetString(web.DownloadData(url));
}

复杂一点用HttpWebRequest/HttpWebResponse:
调用方法:string html=DownloadHtmlPage("http://www.baidu.com",Encoding.GetEncoding("gb2312"),"GET",20);

public static string DownloadHtmlPage(string pageUrl, Encoding encoding, string requestMethod,int timeOut)
{
string value = string.Empty;
HttpWebResponse response=null;
Stream data=null;
StreamReader sr=null;
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(pageUrl);
request.Method = requestMethod;
if (timeOut != -1) request.Timeout = timeOut;
response = (HttpWebResponse)request.GetResponse();
data = response.GetResponseStream();
sr = new StreamReader(data, encoding);
string str;
StringBuilder source = new StringBuilder();
while ((str = sr.ReadLine()) != null)
source.Append(str).Append("\r\n");
value = source.ToString();
}
finally
{
if (sr != null) sr.Close();
if(data!=null) data.Close();
if(response!=null) response.Close();
}
return value;
}
FantasyChump
2010-06-08 · TA获得超过3289个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2298万
展开全部
可以直接用WebClient。具体的参考MSDN,比自己用HttpWebRequest和HttpWebResponse简单许多。但是在需要Cookies的场合,还是使用后者比较可靠一点,或自己重写WebClient。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhengxie007
2010-06-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:1亿
展开全部
你获得的源码都是html超文本标记语言,不会得到ASP JSP PHP代码的
源码有那么容易获取吗?有那么容易获取,网站早就不安全了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a124988724
2010-06-10
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部

/// <summary>

        /// 获取html代码

        /// </summary>

        /// <param name="url">网页地址</param>

        /// <returns></returns>

        public string GetHtml(string url)

        {

            string str = string.Empty;

            try

            {

                WebRequest request = WebRequest.Create(url);

                request.Timeout = 30000;

                request.Headers.Set("Pragma", "no-cache");

                WebResponse response = request.GetResponse();

                Stream streamReceive = response.GetResponseStream();

                Encoding encoding = Encoding.GetEncoding("GB2312");

                StreamReader streamReader = new StreamReader(streamReceive, encoding);

                str =  streamReader.ReadToEnd();

                streamReader.Close();

            }

            catch (Exception ex)

            { }

            return str;

        } 

测试过 没问题  给分   有图有真相 读取Mop的帖子

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友66a8d48e5
2010-06-08 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3974万
展开全部
三楼说的不错,最常用也是最先能想起的就是webclient了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式