0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クローラー(?)を自作した話

Last updated at Posted at 2022-01-08

何故作ったのか

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の偉大さがよ〜〜〜〜〜く分かりました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?