2012-03-23 7 views
3

私はC#でHttpWebRequestのを使用してGoogleの検索結果ページをダウンロードしようとすると、私はシンプルな検索用語を使用する場合、すべてがGoogle検索では、私がしようと

http://www.google.com/search?q=stackoverflow 

のように、非常にうまく機能を照会しかし、複雑な検索のために503エラーを返します例えば

http://www.google.com/search?q=inurl%3A%22goethe%22%20filetype%3Apdf 

、それをより複雑にすることが

inurl:"goethe" filetype:pdf 

を意味し、I Googleは私がボットだと思うので、503のエラーが表示されます。回避策はありますか?

編集:UserAgentは「Mozilla/5.0」に設定されています。あなたの検索がプログラムに行われている場合

答えて

3

も..その後、Googleはちょうどので、右であることを起こる..あなたは

歓声:-)ボットです!

+1

まあまあです。 :)私は本当に結果を得たいと思います。 –

1

クエリの複雑さとは関係がありません。本当に重要なのは、あなたがボットだと思っている場合だけです。あなたは非常に高速でクエリを提出している場合、Googleはいくつかの可能な解決策があるので、あなたがボットだと思うだろう:

  1. あなたがクエリを送信している速度を減らします。
  2. Use proxies to make multiple queries.

さらに、それはあなたがクッキーを保存せずにWeb要求を行った場合、Googleはあなたがボットだと思うようにするために、そして、それはまた別の「シグナル」であるかもしれないことに注意することが重要です。あなたは大きなGを削っているので、プロキシがGoogleによってブロックされないように注意する必要があります。無料のプロキシを見つけることは難しく、それらを悪用すれば、彼らは良い市民になるでしょう!

幸運を祈る!

+2

面白いのは、「stackoverflow」のような簡単なクエリを100回連続して実行できますが、「intitle」パラメータを使用すると、Googleは503を送信します。「ファイルタイプ」は機能します1分以内に900ページのPDFファイルを受信できます。 –

+0

@dm Googleは、「ボット」を使用して物を検索する場合、複数の要素を見て、それらが明確な指標であると思われる組み合わせを見つけた可能性があることを検出すると、ロボット活動。 Googleのブロックメカニズムを引き起こす原因を突き止めることは意図的に*難しい。 – Kiril

1

試行Google Custom Search APIs and Tools.これにより、アクセスが拒否される恐れなしに(最大限まで)検索結果を取得できます。

また、一般的な検索クエリのすべてのニュアンスを模倣します。たとえば、私のブラウザでinurl:"goethe" filetype:pdfを検索すると、this URLが要求されます。
次に、Cookieとその他のhttpヘッダーがあります。ブラウザがリクエストしているように見えるようにする。

関連する問題