
Node.jsを活用して、特定のWebページからHTMLを取得し、ローカルファイルに保存する手順をご紹介します。このプロセスは、Webスクレイピングやデータ収集に有用です。
まず、必要なライブラリをインポートします。axiosはHTTPリクエストを行うため、cheerioは取得したHTMLを解析するため、そしてfsはファイルシステム操作のために使用します。
const axios = require('axios'); const cheerio = require('cheerio'); const fs = require('fs');
次に、スクレイピング対象のURLを定義します。この例では、あるテレビ番組のスケジュールを含むページを対象としています。
const url = 'https://tv.yahoo.co.jp/search?t=3&t=1&g=&d=2023-12-12&ob=&oc=&dts=0&dtse=0&q=&a=23&sort=2';
axios.getを使ってHTTP GETリクエストを行い、ページのHTMLを取得します。取得したHTMLはfs.writeFileメソッドを使用してファイルに保存されます。
javascriptCopy code
axios.get(url) .then(response => { const html = response.data; fs.writeFile('output.html', html, (err) => { if (err) { console.error('File write error:', err); return; } console.log('HTML saved to output.html'); });
}) .catch(error => {
console.error('Error during data fetching:', error);
});
最後に、cheerioを使用して特定のHTML要素(この例では<title>タグ)の内容を取得し、コンソールに出力します。
このコードは、Node.jsを使った基本的なWebスクレイピングの一例です。データ取得からファイル保存までの流れを理解することで、より複雑なスクレイピングタスクに挑戦するための基礎を築くことができます。