JavaScript
Node.js
puppeteer

この記事はPuppeteerによって自動投稿されました

あらすじ

そうだ、PuppeteerでQiitaに自動投稿しよう。

Puppeteerのソースコード

const puppeteer = require('puppeteer')
const devices = require('puppeteer/DeviceDescriptors')
const input = {
    id: 'xxxxx',
    pass: 'xxxxx',
    title: 'この記事はPuppeteerによって自動投稿されました',
    tag: 'JavaScript Node.js puppeteer',
    body: '# あらすじ\nそうだ(以下略)'
}

;(async () => {
    const browser = await puppeteer.launch()
    const page = await browser.newPage()
    await page.goto('https://qiita.com')
    await page.waitFor('footer')
    await page.type('#identity', input.id)
    await page.type('#password', input.pass)
    await page.click('input[value="ログイン"]')
    await page.waitFor('.st-Header')
    await page.goto('https://qiita.com/drafts/new')
    await page.waitFor('.publicEditor')
    await page.type('input[name="draft_item[title]"]', input.title)
    await page.type('input[name="draft_item[tag_notation]"]', input.tag)
    await page.type('.editorMarkdown_textarea', input.body)
    await page.click('.editorSubmit')
    await page.waitFor(1000)
    await page.click('.modal-body .creatingModal_terms label')
    await page.click('.modal-body .creatingModal_footer .btn-primary')
    await page.waitFor(3000)
    await browser.close()
})()

おわりに

普通に人が書いた方が早いですが、ロマンがあります。楽しい。