我正在使用C#控制台应用程序进行webparsing。
我的代码是:
var req = WebRequest.Create("http://watch.squidtv.net/");
req.BeginGetResponse(r =>
{
var response = req.EndGetResponse(r);
var stream = response.GetResponseStream();
var reader = new StreamReader(stream, true);
var str = reader.ReadToEnd();
Console.WriteLine(str);
}, null);
此代码与其他网址一致正常,但当我将网址更改为http://watch.squidtv.net/时,又发生了两个问题 -
第一个 - 它没有下载它的HTML 第二个 - 它产生一个CPU声音。
然后我更改了代码并使用了像这样的webClient -
string htmlCode = "";
htmlCode = client.DownloadString("http://watch.squidtv.net");
Console.WriteLine(htmlCode);
但问题是一样的:(
可能是什么问题???
答案 0 :(得分:1)
我找到了解决方案 问题是HTML标题中的HTML标题有gzip对象编码httpwebrequest不接受gzip标题导致问题,当我使用此代码时问题解决了
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://watch.squidtv.net/");
req.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate";
req.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
req.Method = "GET";
req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
string htmlCode;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
htmlCode = reader.ReadToEnd();
}
答案 1 :(得分:0)