スクレイピングしてみたいから勉強してる途中
1. スクレイピングの勉強をしてみた。
1.1. はじめに
はじめた理由は特にない。深夜テンション。楽しそうだった。
1.2. 今ある知識
プログラムとかスクレイピングとかの知識は0。しいていうならあんまりいっぱいアクセスしちゃいけないってことくらいしか知らない。なのでマジで0からスタートだから変なこと言ってたら教えてほしい。(優しいと嬉しい)
1.3. moduleなに使うか~~
とりあえずおすすめされたrequestsを使ってみようかなって思います。
1.4. その前に覚えとかないといけないこと!
スクレイピングするときはwebサーバーに負荷をかけないようにアクセスとアクセスの間には5秒位間隔をあけよう!!一番守らないといけないことらしい!!
1.5. やってみよー
とりあえずインストールしなきゃなのでインストールした。とりあえず参考にしたサイト(https://www.python.ambitious-engineer.com/archives/974)と同じようにやってみようと思ってやってみた。
1.5.1. 知らない言葉が出てきたからメモるやつ
- ヘッダー
ようわからんじゃ困るんだろうけどようわからん。なんならHTTPもようわからん。 - get
なんかとってくるのか?ようわからん。 - post
putとdeleteを補えるっぽい?ようわからん。 - put
編集するやつらしい。ようわからん。 - エンコーディング
ようわからんが文字コードがわかるっぽい。 これでとれるらしい。
requests.get(url).encoding
- httpステータスコード
これもようわからんけど友人にふわっときいたらサーバーがどうなってるか教えてくれるらしい。200なら正常っぽい?500とかだと鯖落ちしてるらしい。 - レスポンスヘッダ
ようわからんどころかなんもわからん。 - byte形式
いやなにこれ。
1.5.2. もはやわからんからちょっとわかるとこだけ説明したやつ
def get_encoding_from_headers(headers): content_type = headers.get('content-type') # content-typeとは拡張子のこと(ほんとはちがう)(まじようわからん) if not content_type: #なんもなかったらなんもないよってやつ? return None content_type, params = cgi.parse_header(content_type) #ここはほんとなんもわからん #こっからなんもわからん if 'charset' in params: return params['charset'].strip("'\"") if 'text' in content_type: # 拡張子がtextだったら通す(あいまいな表現) return 'ISO-8859-1'
ここはなんもわからん。まあ気が向いたら頑張って調べるか。
1.6. そもそもわからんことが多すぎる件について
いやマジでわからんこと多すぎる。スクレイピング以前の問題説あるなってことで参考になりそうなサイトあったからそれを見ようと思う。
これ→https://review-of-my-life.blogspot.com/2017/10/python-scraping-beginners.html
はやくやりたいから頑張って読むぞー