using (var wc = new WebClient())
{
Uri urls = new Uri(url);
wc.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36";
dokuman.Load(wc.OpenRead(urls), Encoding.UTF8);
}
dokuman.Load(wc.OpenRead(urls), Encoding.UTF8);
远程服务器返回错误:(503) 服务器不可用。
有时我会收到此错误。我们该如何解决这个问题?
我使用这个实用功能,它也支持代理
public static string GetPageHtml(string link, System.Net.WebProxy proxy = null)
{
System.Net.WebClient client = new System.Net.WebClient() { Encoding = Encoding.UTF8 };
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
if (proxy != null)
{
client.Proxy = proxy;
}
using (client)
{
try
{
return client.DownloadString(link);
}
catch (Exception ex)
{
return null;
}
}
}
尝试一下,如果它不起作用,那么您可能被谷歌阻止了,因为您发出请求的速度很快,为了避免被阻止,您应该使用网络代理或在请求之间进行合理的暂停。
示例
var Html = GetPageHtml("https://www.google.com.tr/search?sclient=psy-ab&site=&source=hp&q=cars+&btnG=Ara");
通过网络客户端请求上传 200 多条记录,对我来说工作正常。