Google不允许网络客户端吗?

时间:2010-04-13 19:16:09

标签: c# .net

我有以下内容:

string html_string = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=pharma";
string html;
html = new WebClient().DownloadString(html_string);

当我得到HTML的长度时,它只返回前28435个字符。

Google是否可能不允许访问webclient?

5 个答案:

答案 0 :(得分:3)

我已尝试过此代码段,它返回的内容与浏览器返回的HTML完全相同。我要做的唯一修正是处理一次性物品:

string html_string = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=pharma";
using (var client = new WebClient())
{
    string html = client.DownloadString(html_string);
}

答案 1 :(得分:3)

不,请参阅TOS

  

5.3您同意不通过Google提供的界面以外的任何方式访问(或尝试访问)任何服务,除非您在与Google的单独协议中明确允许这样做。您明确同意不通过任何自动方式(包括使用脚本或网络爬虫)访问(或尝试访问)任何服务,并应确保您遵守服务中存在的任何robots.txt文件中的说明。

答案 2 :(得分:2)

如果您正在编写机器人,它将无法工作;他们最终会阻止你。

你可能想查看他们的API列表,尤其是Custom Search,看看是否有帮助?

答案 3 :(得分:1)

根据搜索结果的经验,他们可以并且会关闭你,他们会检测到一个机器人。

答案 4 :(得分:0)

当然会有所不同。浏览器中可能存在许多额外字符,用于处理用户登录,机器人代码和许多其他脚本。

当您通过代码获取数据时,搜索将以非Google用户(或未签名用户,如果您愿意)的方式执行。这是最简单的解释。

我担心Darin的答案至少在任何时候都不会起作用。这不是故障证明。


是的,当然,您的活动将被检测为机器人,而不是人类。所以,要注意后果。