puppeteerでScrapboxにimport
Last updated
Unknown
Edit Source
- puppeteerでScrapboxにimportするコード
- node.js
- [/ras/NodeでPrivateなscrapboxの情報を取得する](https://scrapbox.io/ras/NodeでPrivateなscrapboxの情報を取得する)のように、sidをセットして動かす
- とりあえず動くレベル
- 雰囲気でjavascriptを書いてるので色々と雑
- $と$xが混在したりしてるけど後で直す- importが動いている間に別ブラウザで開いているページはoverwriteされないっぽい?
- 「Importing Pages…」になった時点で、ブラウザを閉じようが関係ないのかな?
- 元々なかったページのコピーは毎回成功するけど、上書き処理がうまくいかない場合がある
.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| const puppeteer = require('puppeteer');
const sid = "YOUR SID"
const project = "experiment-blu3mo";
(async () => {
const url = new URL(`https://scrapbox.io/projects/${project}/settings/page-data`);
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'],
defaultViewport: {width: 800, height: 1024}
});
const page = await browser.newPage();
await page.setCookie({name: 'connect.sid', value: sid, domain: 'scrapbox.io'});
await page.goto(url.toString());
await page.waitFor(1000);
const inputUploadHandle = await page.$('input[name="import-file"]');
inputUploadHandle.uploadFile("FILE.json");
await page.waitFor(1000);
const importSubmitButton = await page.$x("//button[contains(., 'Import Pages')]");
await importSubmitButton[0].click();
await browser.close();
})()
|
- これを試してみてる
