まるぼ実験場

アプリの開発日記を載せるサイトでしたが、ただの技術ブログになりました。

ローカル保存HTMLのスクレイピング覚書

ネット上にあるHTMLのスクレイピングに関してはかなり情報があるが、

ローカル上にあるHTMLファイルのスクレイピングについてはあまり情報がなかったので覚書。

ファイルの読み込み

Pythonの場合

soup = BeautifulSoup(open(ローカルファイルの保存場所))

あとは通常通り。

C#の場合

通常のテキストファイルと同じくFileStream()を使う。

String型にできればあとは通常通り。

HTMLファイルの形式がMHTMLである場合

Webページを単一の完全なファイルで保存できるMHTML形式のファイルは、文字がQuoted-printableエンコードされているため、扱うにはデコードする必要がある。

Edge以外何かしらのブラウザが使える環境なら、そのmhtmlを開きなおす→html形式で保存しなおしても直るので、単一の完全なWebページでなくて大丈夫な時はそれでもOK。正直それが手っ取り早そう

どうしてもmhtmlで処理しなければならない場合。

上記の方法で読み込み、ヘッダーを削除してからデコード処理した方がよさそう、<body>~</body>を抜き出してからデコードを行うのがよい。

Quoted-printableからのデコード方法

Pythonの場合

quopri --- MIME quoted-printable 形式データのエンコードおよびデコード — Python 3.9.0 ドキュメント

C#の場合

[C#] QuotedPrintable エンコード・デコードの実装方法 │ Web備忘録

いずれもbyteで帰ってくるためUTF-8等任意のエンコードに変換する。