Python スクレイピングをするための準備 Requestsモジュール1
Requestsモジュールとは
PythonからHTTP通信を行う(WebサーバーにURLをリクエストして、レスポンスを受け取る)
ときに使用するモジュールです。
Requestsモジュールは外部ライブラリで、Anacondaに同梱されています。
※Anacondaを使用せずにPythonを使う場合は、
ページ下部の「外部ライブラリのモジュールのインストール方法」を
参考にして、モジュールをインストールしてください。
Requestsモジュールでできること
Requests関数を使ってHTTP通信を行うことで、
サイトの情報を取得することができます。
requests.get(サイトのURL)
requests.getの戻り値は、サーバーからの応答データを表す
requestsオブジェクトです。
このrequestsオブジェクトに対して、以下のことができます。
・HTTP通信が成功したかの確認
・エンコードの種類の確認
・コンテンツ本体の表示
など
◆目次◆
実際にRequestsモジュールを使ってみよう
例として
「Yahoo! Japan 天気・災害」のトップページへHTTP通信を行って
サイトの情報を出力してみます。
手順は以下の通りです。
1. requestsモジュールをインポートする
2. 変数urlに「Yahoo! Japan 天気・災害」のトップページのURLを格納する
3. 変数rに「変数urlにリクエストをしてレスポンスを受け取った結果」を格納する
4. 応答ステータスコードの確認
※「ステータスコードとは」を参考にしてください
5. エンコードの種類の確認
6. 取得したコンテンツを100文字まで出力
import requests url = 'https://weather.yahoo.co.jp/weather/' r = requests.get(url) print(r.status_code) print(r.encoding) print(r.text[:100]) # 200 # utf-8 # <!DOCTYPE html> # <html lang="ja"> # <head> # <!-- UAL --><script> # var TLDataContext = { # ual : {
ステータスコードとは
HTTP通信を行ったときのリクエスト結果を表すコードです。
基本的に200番が返ってきたらリクエストは成功しています。
400番台、500番台が返ってきたらリクエストは失敗してます。
- 100番台 処理中
- 200番台 リクエスト成功
- 300番台 リダイレクト
- 400番台 クライアントエラー
- 500番台 サーバーエラー
外部ライブラリのモジュールのインストール方法
Anacondaを使用せずにPythonを使う場合は、
以下の方法で外部ライブラリのモジュールをインストールしてください。
1. コマンドプロンプトを開く
2. 「pip install ○○(モジュール名)」を入力してEnterキーを押す
3. ダウンロード、インストールが完了するまで待つ。
ちなみに、すでにモジュールがインストール済みの場合は以下のようなメッセージが表示されます。
Requirement already satisfied: requests in c:\users\(ユーザー名)\anaconda3\lib\site-packages (2.24.0)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\(ユーザー名)\anaconda3\lib\site-packages (from requests) (1.25.9)
次回も引き続き
Requestsモジュールについて説明します。
◇スクレイピングの記事◇