何故作ったのか
Scrapyの存在を知らなかったから
前からダウンローダーとかそういうの作ってみたかったんです
それで調べてみたらサイトのクロールとか面白そうだし、ネット小説をまとめてローカルで見れるように出来たら結構いいんじゃないかと思ったので
あと動けば良しの精神で作ってるので場合によっては誤作動起こすかもしれません……
インストール
リポジトリをpipで指定してインストールします
$ pip install git+https://github.com/mino-38/prop
追記
pypiに上げました(名前衝突があったため名前を少し変更)
$ pip install prop-request
使い方
りどみの方を見て頂ければ大体の使い方は分かると思います
基本、クロールは以下で出来ます
$ prop -r [再帰回数(省略可)] -o [出力先ディレクトリ] -I [インターバル] URL
仕様について
- robots.txtの内容は守るようにされてます
- hrefなどの参照先を、ローカルに存在するものはローカルのファイルを指定するように変換します
- クロール以外も一応できます
- 保存ファイルのフォーマットを指定することができます
- 階層ごとにディレクトリは作られず、指定したフォルダに全てダウンロードされます(
そもそもネット小説で2階層以上ダウンロードすることがない) - 全部英語です(日本語よりは英語で作ったほうがいい気がしたので)
作ってみての感想
改めて見ると余計な機能付け過ぎましたね……
requests.getが引数に取る値をとりあえずオプションに追加したって感じです
引数解析部に関してはargparseを使おうか迷ったんですが一部特殊な解析が要るかなと判断したのでゴリ押ししました(おかげでelifが沢山)
あとrequests、BeautifulSoupの偉大さがよ〜〜〜〜〜く分かりました