次のことを行う必要があります: サーバーから読み込まれたページが与えられた場合、読み込み後にそのページのフォームを自動的に送信し、すべての入力フィールドに同じ文字列 ( 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などが含まれている可能性があります)。しかし、このフォームを送信する際に、他に注意することはありますか?