Webスクレイピングをする時に便利な node.js用ライブラリ「article-parser」の紹介です。

 " Webスクレイピング "、簡単に言えば、Webサイトからコンテンツの情報を抜き出すことです。RSSなどのフィードとは違いページ全体を抜き取ります。あまり聞こえはよくありませんが、Webサイトを巡回する クローラー や ソーシャルブックマーク のような機能を実装するなら必要になります。

 ページ全体を抜き出すだけなら、難しいことではありません。ですが、ページをまるごと抜き出すと ヘッダーやフッター、サイドバーなどの HTMLタグを除去が必要になるので、コンテンツのみを抜き出すのに少々手間がかかります。

* Webページはヘッダー、フッターなどの色々なセクションに別れています 


ですが、そんな面倒を 簡単に出来るnode.js用ライブラリが「article-parser」です。
 

article-parserで出来ること

タイトル、コンテンツ(記事の本文)、画像などのセクションに分かれた情報を簡単に取得できる

article-parserのインストール

article-parserは ' npm ' 又は ' yarn ' を使ってインストールします。

# npm
npm install article-parser
# yarn
yarn add article-parser

 

article-parserの使い方

 article-parser の使い方はとても簡単です。ライブラリをインポートし、 'extract 'メソッドを Promise で使えば 構造化されたオブジェクトが返ってきます。

* article-parserを使って返ってくるオブジェクト
- title : HTMLのタイトルタグ
- alias : 別名(空白をハイフンで繋げた文字)
- url : ページのURL
- canonicals : ページのURL
- description : metaタグのディスクリプション
- content : 記事の本文
- image : 記事の画像
- author : 執筆者(metaタグ)
- source : サイト名
- domain : サイトのドメイン
- publishTime : 記事の発行日(metaタグ)
- duration : 持続期間

let { extract } = require('article-parser');

// 取得したいページのURL
let url = 'http://co.bsnws.net/article/225';

extract(url).then((article) => {
  // 取得が成功した時の処理
  console.log(article);
  // コンテンツのみにアクセスする時は下記のように
  // console.log(article.content);
}).catch((err) => {
  // 取得が失敗した時の処理
  console.log(err);
});

上のコードを実行し、アウトプットした結果

以前紹介したことがある 'stripgtags' などと組み合わせて使えば、コンテンツのHTMLタグの除去も簡単におこなえます
* 下の画像はstriptagsを使って、取得したページ本文のHTMLタグを除去して表示しています

 

Summary

 以上が article-parser の紹介でした。自分のページがロボット上からどのように見えているかテストしたい時、ソーシャルブックマーク系の機能を実装したい時、その他、スクレイピング対策をしたい時など、一通りのことが一度に出来るので 色々な場面で使えそうです。

GitHub : ndaidong/article-parser

 

この記事のカテゴリ

プログラミング

この記事のタグ

nodejs

Socialシェアボタン

スポンサーリンク