0

これは良い考えではないことはわかっていますが、すべてのプログラマーはもっと学びたいと思っています。今のところ、私はWebスクレイピングを試しています。初めてスクリプトを作成して実行すると、IP アドレスがブロックされます。スクリプトでサイトに送信するリクエストが多すぎるため、私は間違っていました。そのようにすると、サイトへのトラフィックが多くなり、侵入者だと思われるようになります。 request,関数が終了するまでループを待機させるにはどうすればよいですか? こんなもの使いたくない。これは5秒ごとに実行されます

(function(links){ 
    setTimeout(function() { scrapeAnotherLink(links); }, delay); 
})(result[val]); 
 delay += 5000;

提供されたリンクからの ajax リクエストのスクラップが完了するのを待ち、5 秒待ってから再度実行します。

私のコード。

リンクをこする。//ただのサンプル

$('#scrape').click(function() {
          $.ajax({
          type: 'get',
          url: 'scrape.php',  
          data:{Param:1},
          dataType: 'json',
          cache: false,
              success: function(result) {  
                for(var val in result) { 
                  link = result[val];
                      scrapeAnotherLink(link);
                }
              },
          });
    });


function scrapeAnotherLink(link){
   //Some ajax here
    setTimeout(function() { 
      output_log(link);
   }, 5000);  
}

function output_log(str){

    $('#output').append(str+'<br/>');
}

一部のスクレイパーが IP アドレスをプールしていると読みましたが、その方法がわかりません

4

1 に答える 1