背景
スクレイピングのテストのために、クローラでwebサーバにアクセスするのは気がひけます。というのも、クローリングするたびに相手のwebサーバに負荷をかけてしまうので。
そこで、事前にhtmlファイルを事前にダウンロードしておけばいいのではないかと考えました。
wgetを使用してダウンロード
wgetを使用してhtmlファイルをダウンロードします。
wgetにはダウンロード対象となるURLをリストを読み込むことができますので、それを活用します。
リストの作成はsitemap.xmlを利用する
対象となるサイトにsitemap.xmlを利用します。
golangにsitemap.xmlを解析できるものがあるので、活用します。
htmlをダウンロードするコマンド
-i
でリスト化されたファイルから読み込みます。
また、-w
で取得間隔を調整します。-w 3
とすると、3秒間待ってからwgetを取得します。
ユーザエージェントもついでに設定しています。
wget -i list -w 3 --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"