結論
こちらを使っていきます
https://github.com/nexe/nexe
Nexe is a command-line utility that compiles your Node.js application into a single executable file.
(NexeはNode.jsアプリケーションを実行可能ファイルにコンパイルするためのコマンドラインツールです。)
プログラム
せっかくなのでそれっぽくするために、Qiitaの情報をスクレイピングしてくるプログラムを作成します
*chromedriverが入っている必要あり
qiita.js
const {Builder, By, Capabilities, Key, until} = require('selenium-webdriver');
const capabilities = Capabilities.chrome()
capabilities.set('chromeOptions', {
args: [
// '--headless',
'--disable-gpu',
'--window-size=1024,768'
],
})
const search = async () => {
let driver = await new Builder()
.withCapabilities(capabilities)
.build();
try {
await driver.get('https://qiita.com/');
const q = await driver.findElement(By.name('q'));
q.sendKeys('クリスマス', Key.RETURN)
const searchResult_itemTitles = await driver
.wait(until.elementsLocated(By.className('searchResult_itemTitle')))
for ([index, searchResult_itemTitle] of searchResult_itemTitles.entries()) {
console.log((index + 1) + '. ' + await searchResult_itemTitle.getText())
}
} catch (err) {
console.log(err);
} finally {
await driver.quit();
}
}
search()
package.json
{
"name": "qiita-scrapor",
"version": "1.0.0",
"description": "testing selenium webdriver",
"main": "qiita.js",
"dependencies": {
"selenium-webdriver": "^4.0.0-alpha.7"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Takuma Hanaya",
"license": "ISC"
}
npm i
で必要なライブラリを入れた後 node qiita.js
でテストし動いたら準備OK。
hanayatakuma@MacBook-Pro-2:~/S/qiita-scrapor
➤ node qiita.js
1. Processingでクリスマス
2. クリスマスなのでケーキをえらびます
3. enebularでクリスマスイルミネーション
4. クリスマスといえばxsnow
5. クリスマス イルミネーションもどき
6. hikari と過ごすクリスマス
7. ダァ シエリイェスなクリスマス
8. iBeaconでクリスマスに備えよう!
9. クリスマスはIonicでゲームを作ろうぜ!
10. 聖夜の夜にGazeboでクリスマス
Nexe
nexeを入れていきます
npm i -g nexe
以下のコマンドで実行可能ファイルにnodejsアプリケーションをパッケージングします
nexe qiita.js --output qiita-mac-x64 --target mac-x64-10.10.0
パッケージ可能なnodeのバージョン/OSリストは以下
https://github.com/nexe/nexe/releases/tag/v3.3.3
上のコマンドでは qiita-mac-x64
というファイルができているので実行します
hanayatakuma@MacBook-Pro-2:~/S/qiita-scrapor
➤ qiita-mac-x64
1. Processingでクリスマス
2. クリスマスなのでケーキをえらびます
3. enebularでクリスマスイルミネーション
4. クリスマスといえばxsnow
5. クリスマス イルミネーションもどき
6. hikari と過ごすクリスマス
7. ダァ シエリイェスなクリスマス
8. iBeaconでクリスマスに備えよう!
9. クリスマスはIonicでゲームを作ろうぜ!
10. 聖夜の夜にGazeboでクリスマス