TypeScriptでHTMLファイルを読み込んで画像URLをすべて取り出す

最近おかしくなってきてなんの言語で適当な雑務を行うか悩む所です。

今回はHTMLの中から画像URLだけを取り出すって感じです。ブラウザ上に表示されている単一のページであればimg要素を単に取り出せば終了ですが、今回は無限なるHTMLファイルから画像URLを取り出すってことでして、TypeScriptでやってみよう。

yarn add fs-extra @types/fs-extra

httpとかhttpsとか//とかいろんなパスで始まるっぽいけどhttpsに統一せねばならんというルール。

import * as fs from 'fs';

fs.readFileSync('./hoge.txt', 'utf-8')
  .match(/((https?:)?\/\/example.com[^"']+(png|jpe?g|gif|svg))/gi)
  .map(url => url.replace(/^http:/, 'https:'))
  .map(url => (/^\/\//.test(url)) ? "https:" + url : url)
  .filter((x, i, self) => self.indexOf(x) === i)
  .forEach(url => console.log(url));

これで終わりンゴ。 ts-node で実行すると標準出力されるので煮るなり焼くなり。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA