2016-07-12 7 views
0

まず、これは重複した質問ではありません。彼らの誰も私の問題を解決しませんでした。私はindiegala.comからのプレゼントを手に入れようとしていますが、このサイトにはボットやロボットを防ぐための何らかの保護手段があります。私の目的は違法ではありません、私はちょうど彼らがスチーム・トレード・カードを持っているかどうかを確認してからゲームをチェックします。しかし、知っているように、インディガラは私にロボットのインデックスを与えます。現在私はそのコードを使用しています。Javaのjsoup htmlの解析ロボットのインデックス/ロボットの検出、noindex

 String url = "https://www.indiegala.com/giveaways"; 
    try { 
     String content = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36").ignoreHttpErrors(true).followRedirects(true).get().html(); 
     System.out.println(content); 
    } catch (IOException ex) { 
     System.out.println(ex.toString()); 
    } 

出力(私のコード、変数「コンテンツ」でサイトのソースを、)を確認するには、あなたは私が与えたコードを実行することができ、それは少し長いので、私はここに出力を追加することはできません。しかしそれはそのように見える。

<head> 
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW" /> 
</head> 

どうすればこの保護を通過できますか?私のプログラムは人間のようにこの保護を通過するふりをすることができますか?

答えて

0

私はあなたのケースを見て、ロボットの検出をバイパスする方法を工夫しました。

必要なものはcookiesです。コードの下を参照してください:

String url = "https://www.indiegala.com/giveaways"; 

Document doc = Jsoup.connect(url) 
      .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36") 
      .header("cookie", "incap_ses_436_255598=zI1vN7X6+BY84PhGvPsMBjKChVcAAAAAVhJ+1//uCecPhV2QjUMw6w==") 
      .timeout(0) 
      .get(); 

これは、ウェブサイトが必要とする特定のクッキーのように見える、とヘッダに追加することに成功し、実際のウェブサイトのコンテンツを私に与えている:)

:一般的に、あなたが発生した場合このような状況では、Chromeデベロッパーツールを使用してChromeから送信されたリクエストを簡単に確認してから、Jsoupリクエストで複製できます。

+0

私はこのコードを試してみると、「403 HTTPエラーフェッチURL:ステータス= 403」が表示されます。次にignoreHttpErrors(true)を追加しようとしました。コードはエラーなく動作しますが、まだ私にはロボットのインデックスがあります:/私は自分のクッキーが必要だと思います:)しかし、私は自分自身のためにどれを得ることができるか分かりません:) –

-1

これは私のケースです。それが助けになるかもしれない。ロボットの検出器が私のブラウザエージェントを検出し、よく知られているcaptcha「私はロボットではないことを教えてください」を示しました。まず、this addressにあるchromeプラグインを使用して、Webサイトに渡されたヘッダーが表示され、CookieとuserAgentがわかっていました。私はコードに表示されているcookieとuserAgentをコピーしました。ロボットが検出されるたびに、常駐ブラウザでcaptchaを手動でバイパスします。

Doc = Jsoup.connect(URL_String) 
    .userAgent("Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36")  
    .header("cookie","AWSALB=7ygHW4oBnXOkLMVFehmoTM8F1lLfDiTJVVeP5DTIw4dpGgQ4o2F5mYYm4bvCkJul1nkWqAjq9s0pKojKFqdP7wRm/NX/Ye2ntYKwtlOhVvA4dwSM8QTn1uwi4jgI; Expires=Fri, 24 Nov 2017 11:37:10 GMT; Path=/") 
    .timeout(0) 
    .get();