Webクローラ実装パターン集

今まで様々なWebサイトなど情報を集めるためにクローラを作った時のノウハウ 言語は主にJavaScript(NodeJS)

実装パターン

後ろに行くほど高度・重実装

パターン1 RSS

サイトが提供している RSSにアクセスして情報を取得する. 実装方法としてはrss-parserにURLから解析してくれるライブラリあるので,簡単に実装できる.

パターン2 HTTPリクエスト+HTML解析

HTMLを取得しそのHTMLを解析する JSDOMを使えばURL指定で取得から解析まで1つのライブラリで行える HTMLの解析はXPATHや

パターン3 HTTPリクエスト(独自)+HTML解析

axiosなどでHTMLを取得して,その結果をjsdomに取り込んで解析する JSDOMのライブラリではできない文字コードの変換など取得に細かく制御できる

パターン4 API取得

axiosなどHTTPリクエストからデータ取得する 取得先のAPIは公開されたAPIだけでなく,ブラウザの開発者モードで通信見てAPI探す場合もある たいていJSONのレスポンスのため,解析はHTMLより容易

パターン5 ヘッドレスブラウザ

pupetterやplaywrightなどヘッドレスブラウザを制御するライブラリ使ってブラウザ表示を再現して ページ取得する.ブラウザの操作再現できるのでログインやボタン操作もできる これらのライブラリで要素の指定がJSDOMなどのXPATHと少し異なる点に注意

戻る