JavaScriptでレンダリングしてるページをスクレイピングする方法
const puppeteer = require('puppeteer');
const fs = require('fs');
(async () => {
const browser = await puppeteer.launch({ headless: true });
let allData = [];
// ページを1から20まで繰り返し
for (let i = 1; i <= 20; i++) {
const page = await browser.newPage();
await page.goto(`https://xxxxxxxxxx/?page=${i}`);
// ページが完全にロードされるまで待つ
await page.waitForSelector('.entry');
// entry2ごとにnameとtableの最初のtrのtdのテキストを取得
const data = await page.$$eval('.entry', entries => {
return entries.map(entry => {
const nameText = entry.querySelector('.name')?.textContent.trim() || '';
const tableCells = Array.from(entry.querySelectorAll('.address'));
const tableText = tableCells.map(cell => cell.textContent.trim()).join(',');
return nameText + ',' + tableText;
});
});
allData = allData.concat(data);
await page.close();
}
// データをCSV形式に変換
const csvData = allData.join('\n'); // Already formatted for CSV
// CSVファイルに保存
fs.writeFileSync('output.csv', csvData);
console.log("Data saved to outputs.csv");
await browser.close();
})();
Node.jsを使うのでnpmから「ヘッドレスChrome」が使えるpuppeteerをインストールしておきます。
npm i puppeteer
そして上のコード(scrape.js)を実行することでoutputs.csvファイルにスクレイピング結果を出力することができます。
-
- Google、AIテストツール「MusicLM」テキストから音楽を作成するツールの提供開始
- Googleは2023年5月10日(水)、テキストによる説明から音楽を作成するAIテストツール「MusicLM」を海外で提供開始しました。...
AI
- -
- お名前.comレンタルサーバーでphpMyAdminの#2002 MySQL サーバにログインできませんの対策方法
- phpMyAdmin直下のconfig.sample.inc.phpをconfig.inc.phpにリネームして、config.inc.phpの下記の部分を書き換える...
WordPress
- -
- WordPressのMW WP FormにGoogle reCAPTCHA v3でスパムメール対策
- MW WP Formでお問い合わせを作成したところ、スパムメールが何通か来るようになりました。 なので、その対策としてGo...
WordPress
- -
- svgartista.netを使ったSVGアニメーションの作り方
- https://svgartista.net/を使用してSVGのアニメーションを作成しました↓ See the Pen SVG animation with svgartis...
design
- -
- PHPMailerのメールフォームでHTTP ERROR 500が出た時の対処方法
- HTTP ERROR 500がなかなか消えず、悪戦苦闘していました💦 原因はPHPのバージョンが8.1から7.4に下げることで解決しま...
PHP
- -
- スクロールでメニューに現在地を表示する方法【CodePen】
- スクロールでメニューに現在地を表示する方法をCodePenにまとめました。 See the Pen スクロールでメニューに...
design
- -
- Animateを使って遊園地の海賊船を作りました。
- Animateのキーフレームを使うと動きが簡単につけられて便利です。
Animate
- -
- Windows11でキーボードの連続入力ができない時の対処方法
- Windows11でOSアップデートしてからか、キーボードの連続入力ができなくなりました。 なので、その時の改善方法をメモし...
Windows
- -
- お歳暮バナーを作成しました
- お歳暮バナーを作成しました。 金屏風の背景を基に年末年始らしい赤を中央に配置して豪華な印象に仕上げました。
design
- -
- ひまわりのデジタル絵を書きました
- アップルペンシルでアプリのProcreateを使い初めて書いた絵になります。 Procreateでのアップルペンシルはダブルタッ...
design
-