2013-03-15 59 views
0

我有这个问题 - 我正在写一个简单的网络蜘蛛,它到目前为止效果很好。问题是我正在工作的网站有时会重新定向或向地址添加东西的恶习。在某些页面中,它会在加载它们之后添加“/ about”,并在某些页面上完全重定向到另一个页面。 由于下载html代码并开始解析链接,webclient会感到困惑,但由于它们中的许多格式为“../../something”,因此它会在一段时间后崩溃,因为它会根据到第一个给定地址(在重定向或添加“/ about”之前)。当新创建的页面出现在队列中时,会抛出404 Not Found异常(surpriiise)。C#NET.WebClient DownloadString()问题 - 页面重定向

现在我可以再补充“/关于”每一页我自己,而是妈和笑声,网站本身并不总是能够增加它...

我将不胜感激任何想法。 谢谢你的时间和一切!

回答

4

如果你想获得一个网页的重定向URI解析里面的链接,使用Web客户端的一个子类是这样的:

class MyWebClient : WebClient 
{ 
    Uri _responseUri; 

    public Uri ResponseUri 
    { 
     get { return _responseUri; } 
    } 

    protected override WebResponse GetWebResponse(WebRequest request) 
    { 
     WebResponse response = base.GetWebResponse(request); 
     _responseUri = response.ResponseUri; 
     return response; 
    } 
} 

现在使用的,而不是Web客户端MyWebClient和分析使用ResponseUri

链接
+0

爱你的男人!我不得不删除那些应该处理这个简单问题的垃圾代码。 它现在就像一头野兽! – 2013-03-15 21:31:30

+0

感谢您分享。你是一个安全的生活:) – Mostafa 2016-04-01 21:53:40