我正在使用此帖子中的代码:Get HTML code from website in C#
将html保存在字符串中
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream;
if (response.CharacterSet == null)
readStream = new StreamReader(receiveStream);
else
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
string data = readStream.ReadToEnd();
response.Close();
readStream.Close();
msgBox.Text = data;
}
然而,我试图阅读的页面有一个临时的加载页面,我怎么能解决这个问题,它试图在实际加载这个页面之后再次保存html?
祝你好运
答案 0 :(得分:2)
我试图阅读的页面有一个临时的加载页面
这完全取决于这意味着什么以及如何"临时加载页面"作品。例如,如果该页面(无论是来自JavaScript代码还是某些HTML META重定向)向目标页面发出请求,那么 请求就是您需要捕获的内容。目前您正在阅读指定的网址:
(HttpWebRequest)WebRequest.Create(url)
这实质上是对该URL发出GET请求并读取响应。但根据您的描述,这听起来像是错误的网址。这听起来像是第二个网址,其中包含您正在寻找的实际信息。
鉴于此,您基本上有两个选择:
url
的值来确定其他URL的手动操作。url
值,并向新网址发出第二个请求。显然,第一个选项要容易得多。如果第二个URL随着每次访问而变化,或者预计会随着时间的推移频繁变化,则仅需要第二个URL。如果是这种情况,那么您必须对网站执行第二个请求的方式进行逆向工程,以便您也可以执行此操作。
网页抓取很快就会变得复杂,并且在抓取内容的人和托管内容的人(可能不希望被抓取)之间经常变成猫捉老鼠的游戏(甚至无意间和相互不知情)答案 1 :(得分:0)
为什么不使用webbrowser并使用
延迟await Task.Delay(n)