今回の講座の導入文
みんな、今日は「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リクエストを送信してデータを取得する方法!