C# url bot的用户代理字符串

C# url bot的用户代理字符串,c#,web-crawler,user-agent,bots,C#,Web Crawler,User Agent,Bots,你好,我正在尝试创建一个简单的机器人,检索网页的内容。我对这个过程非常了解。我的最终目标是开发一个应用程序,通过在网上查询食品信息来检索食品信息。我这里的这个简单代码应该是转到一个网页并打印出该网页的源代码,但我一直被重定向,因为用户代理字符串似乎来自一个自动过程。当然,这是一个自动化的过程……我是不是遗漏了什么?我如何格式化我的用户代理字符串以使其在web上可接受?或者我需要完全不同的方法来处理这个问题?你现在需要特别才能有一个网络摄影师吗 try { HttpClient cl

你好,我正在尝试创建一个简单的机器人,检索网页的内容。我对这个过程非常了解。我的最终目标是开发一个应用程序,通过在网上查询食品信息来检索食品信息。我这里的这个简单代码应该是转到一个网页并打印出该网页的源代码,但我一直被重定向,因为用户代理字符串似乎来自一个自动过程。当然,这是一个自动化的过程……我是不是遗漏了什么?我如何格式化我的用户代理字符串以使其在web上可接受?或者我需要完全不同的方法来处理这个问题?你现在需要特别才能有一个网络摄影师吗

 try
 {
     HttpClient client = new HttpClient();

     client.MaxResponseContentBufferSize = 25600;
     HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
     response.EnsureSuccessStatusCode();
     string responseBody = await response.Content.ReadAsStringAsync();

     Console.WriteLine(responsebody);
 }
 catch (HttpRequestException e)
 {
     Console.WriteLine("\nException Caught!");
     Console.WriteLine("Message :{0} ", e.Message);
 }
您可以更改用户代理标题,使您的程序冒充浏览器。例如,IE 10:

client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");

如果网站不允许自动流程web爬虫访问其数据,我们作为开发人员应该尊重这一点。通常,可以在robots.txt中找到有关您可以使用web刮板访问网站的哪些部分的信息,例如。如果您正在检索的页面前面列出了“不允许”,这基本上就是网站告诉您不要使用web刮板访问该页面的方式。