(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。プログラミング初心者&Windowsユーザー向けにPythonでWebスクレイピングをする方法についてお伝えしています。Pythonでスクレイピングをする最初の一歩、Webページを丸ごと取得する方法Windowsを使う初心者向けにPythonの情報を提供しています。今回は、Pythonでスクレイピングをする最初の一歩、requestsモジュールのget関数でWebページを丸ごと取得する方法です。tonari-it.com2017.10.18最初の一歩ということで、特定のWebページのHTMLを丸ごと取得する方法についてお伝えしました。HTMLの解析だ!欲しいデータの抽出だ!!と行きたいところなのですが、ちょっと待ってください。ほら、スクレイピングって、サーバー調子悪かったり、URL間違えてたりすると取得できないんです。そんなときどうなっちゃうんですかね?ということで、PythonでHTTPリクエストする際のエラーのチェックと安全な中止の仕方についてお伝えします。前回作成したスクリプトはコチラ。requests.get('https://tonari-it.com';)print(res.text)requestsモジュールを使って、指定したURLにGETリクエストをして、そのWebページのHTMLを取得して表示、というスクリプトでした。通信ができないときに実行してみるただ...Webスクレイピングはスクリプトが正しければちゃんと動くというわけではありません。接続先のサーバーが調子悪いそもそもURLが間違えているなどの理由から、うまく取得ができないときがあります。そんな時はどうなっちゃうでしょうか。実際に、存在しないURL「https://tonari-it.com/not_exists」宛に実行してみましょうか。...おや、取得できちゃいました。Not_Exists</title>などとあります。実際に、ブラウザでこのURLを見てみると、いわゆる404ページでした。いうことで、なんか動くけど、正しい結果が得られていなかったというややこしい感じになっちゃいますね。レスポンスのエラーをチェックして安全に中止するそれで、基本方針としては、どうせスクリプトが正しく動かないなら、より安全に中止させよう!というアイデアで進めていきます。いうか、それが推奨されています。いうのも、きっとどこかで変な挙動になるのですが、それを起こすより前に、うまくいかなかったのを検知してそこで止めちゃったほうが、安全だし、対応すべきパターンが絞られるので対処もしやすいということになります。HTTPステータスコードとはまず、GETリスクエストに対して正しいレスポンスが得られたかどうか、というのはHTTPステータスコードなるもので確認をすることができます。HTTPステータスコードというのは、通信をしている際の状態を表す3桁の数字で、大まかに以下のように分類されます。100番台:処理中200番台:成功300番台:リダイレクト400番台:クライアントエラー500番台:サーバーエラーrequestsモジュールでget関数を使ったときにHTTPステータスコードを知るには、Responseオブジェクトのstatus_code属性を調べるという方法があります。Responseオブジェクト.status_codeこれで取得できます。requests.get('https://tonari-it.com/not_exists/')print(res.status_code)こんな出力が得られます。