
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スクレイピングの一例です。データ取得からファイル保存までの流れを理解することで、より複雑なスクレイピングタスクに挑戦するための基礎を築くことができます。