NodeでCheerioを使ってスクレイピング
スクレイピングをやったことが無かったが、軽く情報を取得したいということがあったので試しにNodeでスクレイピングしてみた。
目次
ライブラリの準備
今回はスクレイピングにcheerio-httpcliを使用する。cheerio
はてパースしたHTMLをjQueryのように操作できるライブラリで、cheerio-httpcli
はそれを更に使いやすくしたもの。
ということでインストールする。今回はこれ以外は使わない。(必要に応じてlodash
等は入れてもいいかもしれない。)
1 | yarn add cheerio-httpcli |
スクレイピング
使い方
大体 ここ を参考にした。
簡単な使い方だけ書いておく。
1 | const httpClient = require('cheerio-httpcli'); |
画像のダウンロード
公式リファレンス を参考に。
1 | const fs = require('fs'); |
その他
スクレイピング以外で少しつまったことをまとめてみる。
URLオブジェクト
Nodeではクライアントjsで普通に使えるURL
オブジェクトがデフォルトでは使えない。
使うにはrequire('url').URL
としないといけない。
excelとcsv
今回取得したデータは、csvにしてexcelで読み込むつもりだったが、普通のutf-8だと文字化けしてしまう。
なのでBOM(\uFEFF)をcsvファイルの先頭に追記することで読み込ませるようにした。
感想
スクレイピング自体は、参考文献が多くてそんなに苦労しなかったが、取得したHTMLから必要な情報を取得して整理するのがめちゃくちゃめんどくさかった。