读书人

HttpWebRequest怎么获取完整的网页

发布时间: 2013-08-01 15:23:18 作者: rapoo

HttpWebRequest如何获取完整的网页
我想获取网页上一个链接,但是这个链接是通过js加载出来的,用下这个代码获取总是js加载完成前的源码,怎么才有得到js加载完成后的网页呢?

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Timeout = 30000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
strResult = readStream.ReadToEnd();
if (request.HaveResponse)
{
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return strResult;
HttpWebRequest
[解决办法]
webbrowser documentComplete判断当前加载网页位置以及页面,然后获取页面源码。
[解决办法]
HttpWebRequest好像没有提供加载完成的判断的,建议使用WebBrowser的documentComplete来获取完整页面代码,具体实现参考:http://www.cnblogs.com/ceachy/articles/CSharp_Retrive_Page_Document.html



[解决办法]
webbrowser可以执行js,所以能弹出保存对话框。但是HttpWebRequest就不能执行js了。
可以从网页源码中获取js代码解析出url,但是网页的js也可能是调用了另外一个js文件的函数,这样就要再去解析那个js文件,一直到找到需要的url为止,这时就可以再用HttpWebRequest去访问找出的那个url了。

读书人网 >C#

热点推荐