2

次のことを行う必要があります: サーバーから読み込まれたページが与えられた場合、読み込み後にそのページのフォームを自動的に送信し、すべての入力フィールドに同じ文字列 ( test worked) を入力する必要があります。これは明らかに私の問題を単純化したものですが、十分に近いです!

現時点では、フォームを取得しており、https ://github.com/cheeriojs/cheerio を使用して調査しています。

var URL = http://www.example.com/form/index.html"
// ...load the page ...
$ = cheerio.load( fetchedPageText );

現時点では、次のコードがあります。

var $ = cheerio.load( fetchedPageText );

var forms = $('form');
for( var i1 = 0, l1 = forms.length; i1 < l1; i1 ++ ){
  var form = forms[ i1 ];

  inputFields = $( 'input', form );


  console.log("******FORM ACTION: ", form.attribs.action );
  console.log("******FORM: ", form );

  for( var i2 = 0, l2 = inputFields.length; i2 < l2; i2 ++ ){
    var inputField = inputFields[ i2 ];

    console.log( inputField );
    console.log("**************INPUT FIELD ", inputField );


    /* At this point, I have `action` and every input field */


  }
};

質問:

  • 現時点でsubmitは、ダウンロードしたページに相対的です。提出物を正しい場所に確実に提出するにはどうすればよいですか? url.parse を実行して、URL からアクションのガル パスを計算する必要がありますか?

  • 実際に「投稿」文字列を作成するにはどうすればよいですか? または、さらに良いことに、このフォームをどのように投稿しますか?

  • これが機能しない可能性があることを認識しています(フォームにJavascriptなどが含まれている可能性があります)。しかし、このフォームを送信する際に、他に注意することはありますか?

4

1 に答える 1