C# 对于复杂的搜索查询,Google Search返回503错误
当我尝试在C#中使用HttpWebRequest下载Google搜索结果页面时,如果我使用简单的搜索词(如C# 对于复杂的搜索查询,Google Search返回503错误,c#,search,httpwebrequest,C#,Search,Httpwebrequest,当我尝试在C#中使用HttpWebRequest下载Google搜索结果页面时,如果我使用简单的搜索词(如 http://www.google.com/search?q=stackoverflow 但是当我试着让它更复杂的时候,例如 http://www.google.com/search?q=inurl%3A%22goethe%22%20filetype%3Apdf 也就是说 inurl:"goethe" filetype:pdf ,我将收到一个503错误,因为谷歌认为我是一个机器人。有
http://www.google.com/search?q=stackoverflow
但是当我试着让它更复杂的时候,例如
http://www.google.com/search?q=inurl%3A%22goethe%22%20filetype%3Apdf
也就是说
inurl:"goethe" filetype:pdf
,我将收到一个503错误,因为谷歌认为我是一个机器人。有什么解决办法吗
编辑:UserAgent设置为“Mozilla/5.0”。很好。。如果您的搜索是以编程方式完成的,那么Google恰好是对的。。你是一个机器人:-)
干杯 我认为这与你的查询有多复杂没有多大关系。唯一真正重要的是他们是否认为你是机器人。如果你以很高的速度提交查询,那么谷歌会认为你是一个机器人,因此有几种可能的解决方案:
inurl:“goethe”文件类型:pdf将导致被请求。
然后是cookie和其他http头。让它看起来更像是浏览器在请求它。很好-正确。:)不过我真的很想得到结果。有趣的是,我可以连续做100次像“stackoverflow”这样的简单查询,但只要我使用“intitle”参数,Google就会给我发送一个503。“文件类型”虽然有效,但我能在不到一分钟的时间内收到900个PDF文件的结果页。@dm Google在检测您是否使用“机器人”查询内容时,不会只看一件事,他们会查看多个因素,您可能会偶然发现一个组合,他们认为这是机器人活动的明确指标。很难判断是什么触发了谷歌的拦截机制。