-- 急问一个关于网页重定向的问题 C#--
大家好,我是一个学生,最近在为自己的作业爬数据,
网站是大众点评网,www.dianping.com
在学校的时候,由于是在北京,或者是使用美国的proxy, 还没有遇到过网页重定向的问题,
可最近过年回家,我的网页爬虫爬到的数据全部按照地区被重定向到了当地的目录,数据无法继续搜集,非常着急
比如说,我爬这个网页,http://www.dianping.com/shop/515445,本来是关于北京一家餐厅的评论,但是爬虫就自动重定向到了家乡的餐厅搜索结果,根本不是我需要的。
当我把hwr.AllowAutoRedirect设为false的时候,则爬虫只能下载下来一个显示重定向连接的网页,也不是我所需要的;
可是当我用IE或者Firefox访问这个页面的时候,一切都好好的,就是我需要的页面,可爬虫却不行。
唯一可以行得通的是采用国外的proxy,可是在家搜了好久,都没有找到能用的,非常着急。
请各路高手出手相助,给您拜年了!谢谢大家!
下面是我的C#下载页面的代码:
public bool Download()
{
if (!CheckTargetDir()) return false;
try
{
HttpWebRequest hwr = (HttpWebRequest)(WebRequest.Create(m_StrUrl));
hwr.UserAgent = @"Mozilla/4.0; (Compitable; MSIE 6.0; Windows NT 5.1;)";
hwr.Proxy = new WebProxy();
hwr.CookieContainer = new CookieContainer();
hwr.AllowAutoRedirect = true;
/*
hwr.Proxy = new WebProxy("http://jpnproxy.fareast.corp.microsoft.com", true);
}
*/
WebResponse wr = hwr.GetResponse();
using (Stream strmFileContent = wr.GetResponseStream())
{
using (FileStream fsTargetFile = new FileStream(m_StrTargetFile, FileMode.OpenOrCreate))
{
if (wr.ContentType.ToLower().StartsWith(@"text/"))
{
m_bIsTextType = true;
return DownloadText(strmFileContent, fsTargetFile);
}
return DownloadBinary(strmFileContent, fsTargetFile);
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return false;
}
}