nodejs:scraping
文書の過去の版を表示しています。
スクレイピング
例
// index.js const axios = require('axios'); const cheerio = require('cheerio'); // スクレイピング対象のURL const url = 'https://announce.wowma.jp/'; // Slack Incoming WebhooksのURLを設定 const slackWebhookUrl = ''; // Axiosを使用してHTMLを取得 axios.get(url) .then(response => { // 取得したHTMLをCheerioでパース const $ = cheerio.load(response.data); // スクレイピング対象の要素を指定してデータを取得 // .modWhiteBox01 const targetDiv = $('.modWhiteBox01'); // div要素内の uniMainList セレクタ指定して取得 const innerTargetDiv = targetDiv.find('.uniMainList'); // その中の li 要素を取得 const liElements = innerTargetDiv.find('li'); const items = []; liElements.each((index, element) => { // 改行で分割し、空白でない行のみを取り出す var lines = $(element).text().replace(/\t/g, '').split('\n').filter(line => line.trim() !== ''); const date = lines[0].trim(); const tag = lines[1].trim(); const title = lines[2].trim(); const today = new Date(); const yesterday = new Date(); yesterday.setDate(today.getDate() - 1); //console.log(yesterday.toISOString().split('T')[0].replace(/-/g, '/')); const formattedToday = today.toISOString().split('T')[0].replace(/-/g, '/'); if (tag.includes('メンテナンス') || tag.includes('障害')) { items.push({ date: date, tag: tag, title: title }); } }); console.log(items); }) .catch(error => { console.error('エラー:', error); });
以下を実行する
npm run start
nodejs/scraping.1700727809.txt.gz · 最終更新: 2023/11/23 17:23 by mikoto