【Webスクレイピング入門】requestsライブラリで簡単にGETリクエストを送信してデータを取得する方法!

※関数の書き方・実行結果に誤りがあるケースがあります。随時修正中です。また誤りに気づかれた方はこちらからご連絡頂きますとめちゃ嬉しいです。

目次

今回の講座の導入文

みんな、今日は「Webスクレイピング」について学ぶで!この技術を使うと、ネット上の情報を自動で取り込めるようになるんや。例えば、毎日同じニュースサイトを見に行くんがめんどくさいとするやん?そしたら、スクレイピングを使えば、必要な情報を自動で集めてくれるツールを作れるんや!

この技術を使うメリットはたくさんあるで!例えば:

  • 時間の節約:手動で情報を集める必要がなくなるから、他のことに時間を使える。
  • データ分析に活用:集めたデータを使って、いろんな分析ができる。ビジネスの意思決定にも役立つで!
  • 最新情報の取得:最新の情報をリアルタイムで取得できるから、競争優位性が増す。

さあ、今日の授業では、HTTPリクエストの基本から始めて、requestsライブラリの使い方をばっちりマスターしよう!ワクワクするやろ?

① HTTPリクエストの基本(GET、POST)

さて、まずはHTTPリクエストの基本についてお話しするで。HTTPリクエストっていうのは、ウェブサイトに「ちょっとデータをちょうだい!」ってお願いする方法なんや。主に使われるのが「GET」と「POST」の2つのリクエストやで。

GETリクエスト

GETリクエストは、ウェブページを取得するために使うもんや。例えば、ブラウザでURLを入力してページを開くとき、実はこのGETリクエストを送信してるんや。データを取得するために使うから、主に以下のような特徴があるで:

  • データを取得:ウェブサイトから情報をもらうために使う。
  • URLにデータを含む:クエリパラメータを使って、追加の情報をURLに付け加えることができる。

POSTリクエスト

POSTリクエストは、データをサーバーに送信するために使うもんや。例えば、フォームに入力した情報を送信するとき、POSTリクエストが使われることが多いで。主な特徴はこんな感じ:

  • データを送信:サーバーに新しい情報を追加したり、更新したりするために使う。
  • ボディにデータを含む:送信するデータはURLに現れず、リクエストのボディに含まれるから、プライバシーが保たれる。

この2つのリクエストを理解することが、Webスクレイピングの第一歩やで!次は、requestsライブラリをインストールして、実際に使ってみる準備をしよう!

② requestsライブラリのインストールと基本的な使い方

次は、Pythonのrequestsライブラリを使ってHTTPリクエストを送信する準備をしよう!このライブラリを使うと、簡単にHTTPリクエストを扱えるから、スクレイピングにはもってこいやで。

requestsライブラリのインストール

まずは、requestsライブラリをインストールする必要があるんや。Google ColabやJupyter Notebookを使ってる場合、以下のコマンドを実行してインストールしてな!

!pip install requests

これで、requestsライブラリがインストールできるで。インストールが終わったら、さっそく使ってみよう!

requestsライブラリの基本的な使い方

インストールが終わったら、次はGETリクエストの基本的な使い方を説明するで。まずは、ライブラリをインポートして、ウェブページにリクエストを送ってみよう。

import requests

# リクエストを送信するURL
url = 'https://example.com'

# GETリクエストを送信
response = requests.get(url)

# レスポンスの内容を表示
print(response.text)

このコードでは、指定したURLにGETリクエストを送信して、レスポンスを受け取るんや。response.textを使うことで、取得したウェブページの内容を表示できるで。

これで、requestsライブラリの基本が分かったな!次は、ヘッダーやパラメータの設定について学んでいこか!楽しみやな!

③ GETリクエストを送信してWebページを取得

さて、次は実際にGETリクエストを送信して、Webページを取得する方法を詳しく見ていこう!これによって、さっき説明したrequestsライブラリを使って、リアルなデータを手に入れることができるで。

GETリクエストの実行

さっきのコードを使って、もう少し具体的なURLを使ってみよか。今回は、実際に存在するウェブページにGETリクエストを送信してみるで。例えば、Wikipediaの「Python」ページにアクセスしてみるんや。

import requests

# WikipediaのPythonページのURL
url = 'https://ja.wikipedia.org/wiki/Python'

# GETリクエストを送信
response = requests.get(url)

# レスポンスのステータスコードを表示
print('ステータスコード:', response.status_code)

# レスポンスの内容を表示
print(response.text[:500])  # 最初の500文字だけ表示

このコードでは、WikipediaのPythonページにGETリクエストを送信して、レスポンスのステータスコードと最初の500文字の内容を表示するんや。ステータスコードが200やったら、リクエストが成功したことを意味するで!

レスポンスの確認

  • ステータスコード:これはリクエストが成功したかどうかを示すコードや。200は成功、404はページが見つからない、500はサーバーエラーなど色んなコードがあるで。
  • レスポンスの内容:取得したHTMLの内容を表示することで、どんなデータが返ってきたのかを確認できるんや。

このようにして、GETリクエストを使ってWebページを取得できるようになったな!次は、ヘッダーやパラメータの設定について学んで、もっと自由にリクエストをカスタマイズできるようになろう!楽しみやな!

④ ヘッダーとパラメータの設定

さて、次はGETリクエストを送信するときに、ヘッダーやパラメータを設定する方法についてお話しするで。これを使うことで、リクエストをもっと細かく制御できるし、特定の情報を取得するために必要なんや。

ヘッダーの設定

ヘッダーは、リクエストに追加情報を付け加えるためのもんや。たとえば、ブラウザやクライアントの情報をサーバーに伝えることができるで。以下は、User-Agentというヘッダーを設定してリクエストを送る方法や。

import requests

url = 'https://ja.wikipedia.org/wiki/Python'

# ヘッダーを設定
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

# GETリクエストを送信
response = requests.get(url, headers=headers)

# レスポンスのステータスコードを表示
print('ステータスコード:', response.status_code)

# レスポンスの内容を表示
print(response.text[:500])  # 最初の500文字だけ表示

このコードでは、User-Agentを設定してリクエストを送信してるんや。これにより、サーバーは「これはブラウザからのリクエストやで」と認識してくれるで。

パラメータの設定

次に、GETリクエストにクエリパラメータを追加する方法を見てみよう。たとえば、特定の検索結果を取得したいときに使うで。以下は、Wikipediaで「Python」を検索するリクエストの例や。

import requests

url = 'https://ja.wikipedia.org/w/index.php'

# クエリパラメータを設定
params = {
    'search': 'Python'
}

# GETリクエストを送信
response = requests.get(url, headers=headers, params=params)

# レスポンスのステータスコードを表示
print('ステータスコード:', response.status_code)

# レスポンスの内容を表示
print(response.text[:500])  # 最初の500文字だけ表示

このコードでは、params引数を使って、検索ワード「Python」を指定してリクエストを送信しているんや。これで、特定の情報を取得するためのリクエストができるようになったな!

ヘッダーやパラメータを設定することで、リクエストの精度を上げられるから、ぜひ使ってみてな!次は、レスポンスの処理について学んで、データをうまく扱えるようにしよう!楽しみやな!

⑤ レスポンスの処理(ステータスコード、内容の取得)

さあ、最後にレスポンスの処理について学んでいこう!GETリクエストを送った後、受け取ったレスポンスをうまく扱うことが重要やで。これによって、ステータスコードを確認したり、ページの内容を取得したりできるんや。

ステータスコードの確認

まずは、リクエストの結果を確認するためにステータスコードをチェックするんや。これを使うことで、リクエストが成功したかどうかを判断できるで。以下のコードを見てみてな。

import requests

url = 'https://ja.wikipedia.org/wiki/Python'

response = requests.get(url)

# ステータスコードを取得
status_code = response.status_code

# ステータスコードの確認
if status_code == 200:
    print('リクエスト成功や!')
elif status_code == 404:
    print('ページが見つからへんで。404エラーや。')
else:
    print(f'他のエラーが発生したで。ステータスコード: {status_code}')

ここでは、200や404などのステータスコードを使って、リクエストの成否を確認してるで。成功したときは「リクエスト成功や!」って表示されるし、404エラーのときは「ページが見つからへんで」と表示されるんや。

レスポンスの内容の取得

次に、レスポンスの内容を取得する方法を見てみよう。response.textを使うことで、取得したHTMLの内容を文字列としてゲットできるんや。

# リクエストの成功を確認した後
if response.status_code == 200:
    # レスポンスの内容を取得
    content = response.text

    # 内容の最初の500文字を表示
    print(content[:500])  # 最初の500文字だけ表示

このコードでは、リクエストが成功した場合にHTMLの内容を取得して、最初の500文字を表示してるんや。これで、どんなデータが返ってきたのかを確認できるんや!

まとめ

  • ステータスコードを確認してリクエストの結果を判断する。
  • response.textを使って、取得したHTMLの内容を表示する。

これでレスポンスの処理についての基本が分かったな!これを使って、実際にデータを取得したり、分析したりすることができるで。次のステップに進む準備ができたら、どんどん実践していこう!楽しみやな!

【Webスクレイピング入門】requestsライブラリで簡単にGETリクエストを送信してデータを取得する方法!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次