Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

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. ダウンロード、インストールが完了するまで待つ。

f:id:lbibouroku:20210525222617p:plain

ちなみに、すでにモジュールがインストール済みの場合は以下のようなメッセージが表示されます。
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)

f:id:lbibouroku:20210525224942p:plain


次回も引き続き Requestsモジュールについて説明します。


スクレイピングの記事◇

Python スクレイピングとは? 概要と注意点 - Kの備忘録(仮)