日記

puppeteer でフォームからファイルのアップロード

フォームからアップロード処理できたら便利だなー
っと思ってたらちゃんとありました!

以下は宅ふぁいる便に「image.zip」をアップロードするプログラムです。
メール送信のところを使うと、「ファイルをアップロードしてメルアドに送信」というところまで自動化できちゃいます。
consoleにアップロード先が表示されます。

注意 : このコード宅ふぁいる便に迷惑かけないように配慮して使ってください

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({ 
        args: ['--no-sandbox'],
        headless:false
     });
    const page = await browser.newPage();
    await page.goto('https://free.filesend.to/fileup_free2');

    const filePath = "image.zip";
    const input = await page.$('input[name="files[]"]');
    await input.uploadFile(filePath);

    //同意にチェック
    //利用規約ちゃんと読んでね。
    await page.click('#safefilechk');

    //送信ボタン(確認画面へ)
    await page.click('#uploadbtn > p.btn_fileup > a');

    await page.waitFor(2000);
    //確認送信ボタン
    await page.click('#uploadbtn > p > a');

    await page.waitFor(2000);
    var uploadinput  = await page.$("#input_dl_url");
    uploadurl = await page.evaluate(content => content.value, uploadinput);
    console.log(uploadurl);
    
    await browser.close();
})();

「xxx.uploadFile」の部分です
最強かな?

こちらの記事もおすすめ!