reCAPTCHAみたいな画像認証が組み込まれていてロボットも弾くようになっているサイトだけど、どうしてもスクレイピングしたいから、マニュアルアクセスでページを保存してスクレイピングのプログラムにまわしたい、さらにその際に表示されている画像も一緒にとりたいというなかなか難しそうな課題に取り組んでいた。
IEで保存すると(完全とかいうオプション選ぶんだっけ?忘れた)フォルダに画像ファイルとかまとめて保存してくれるんだけどスクレイピングにまわすの不便というか、ウェブサービスにしたいからuploadしやすいファイル形式がいいなぁと調べていたらIEだとmhtという形式で保存できるということに気がついた。
調べたら相当前からあったらしい。
そして単一のファイルでMIMEなのも便利なところ。
RFC 2557 は、MHTMLは電子メール以外のプロトコル (HTTPやFTP) でも一度に転送出来ることや、完全なHTML文書のアーカイブとして保存出来ることを示唆している。
unpackの実装見てみたら、emailモジュール使ってunpackしていた。まぁそうだろうなと。
そこまでわかればスクレイパーをサクッと書いてやりたい仕事は終了した。
もう、半自動スクレイピングは怖くないw
あとmhtをそのままメールで送ったらアクセスポリシーがとか画像の表示を許可しますか?とか言われなくていいんではないかと思ったけどどうなんだろう?