📽️
TypeScript+Puppeteerでスクレイピング - TypeScript入門
概要
スクレイピングといえばPythonがスタンダードですが、TypeScriptで書きたい事もあるんです。
Headless Chrome(見えない画面で動くChrome)を手軽に使えるPuppeterでスクレイピングにチャレンジしてみます。
ゴール
Zennのトップページの記事一覧を出力する。
必要なもの
- 作業時間:10分
- nodejs(npm)
- TypeScriptが動く環境
Zennのトップページをスクレイピング
-
Puppeteerのインストール
Puppeteerをインストールします。npm install puppeteer
-
スクレイピングするソースを作成する
トップページの記事タイトルを列挙してスクショをとるソースを作成します。scraping.tsimport puppeteer from "puppeteer"; const main = async () => { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto("https://zenn.dev") // トップページの記事タイトルを列挙する const titles = await page.$$eval('h2', list => list.map(e => e.textContent)) console.log(titles) // トップページのスクショを残す await page.screenshot({ path: "C:/typescript/zenntop.png" }); await browser.close() } main()
-
TypeScriptで実行する
npx ts-nodeコマンドで実行します。見えないところでChromeが起動するため少し時間がかかります。npx ts-node scraping.ts
記事の一覧が表示されました。
トップページのスクショも作成されています。
サンプルコード
この記事で使用するコードはgithub上に公開しています。
Discussion