Pythonの標準ライブラリの一つであるurllibは、URLを扱うためのモジュールです。urllibは、URLを開いたり、データを送ったり、データを取得したりすることができます。
urllibを使ったGETリクエストの基本的な方法
GETリクエストは、Webサーバーに対してデータを要求する方法の一つです。urllibを使ってGETリクエストを送信するには、urllib.request.urlopen()メソッドを使用します。
import urllib.request
response = urllib.request.urlopen('http://example.com')
html = response.read()
print(html)
上記のコードは、指定したURLのWebページを取得し、HTMLを取得する方法を示しています。
GETリクエストにパラメーターを付けて送信する方法
GETリクエストにパラメーターを付けて送信することができます。パラメーターを付けるには、URLの末尾に「?」を付け、その後にパラメーターを付けます。パラメーターの間は「&」で区切ります。
import urllib.parse
import urllib.request
url = 'http://example.com'
values = {'key1': 'value1', 'key2': 'value2'}
data = urllib.parse.urlencode(values)
url = url + '?' + data
response = urllib.request.urlopen(url)
html = response.read()
print(html)
上記のコードは、URLにパラメーターを付けてGETリクエストを送信し、HTMLを取得する方法を示しています。
GETリクエストのパラメーターのエンコーディングについて
GETリクエストにパラメーターを付ける場合、パラメーターはURLエンコードする必要があります。urllib.parse.urlencode()メソッドを使用することで、簡単にURLエンコードすることができます。
GETリクエストの結果からステータスコードを取得する方法
Webサーバーから返されるステータスコードは、HTTPレスポンスの一部です。urllib.request.urlopen()メソッドを使用することで、HTTPレスポンスを取得し、ステータスコードを取得することができます。
import urllib.request
response = urllib.request.urlopen('http://example.com')
status_code = response.getcode()
print(status_code)
上記のコードは、指定したURLのWebページを取得し、ステータスコードを取得する方法を示しています。
urllibの注意点とトラブルシューティング
urllibは、Webページの取得には便利なライブラリですが、いくつかの注意点があります。
- urllibは、HTTPリダイレクトを自動的に処理しません。HTTPリダイレクトを処理する必要がある場合は、requestsライブラリを使用することをお勧めします。
- urllibは、SSL証明書の検証を行いません。SSL証明書の検証が必要な場合は、requestsライブラリを使用することをお勧めします。
- urllibは、タイムアウトの設定を行いません。タイムアウトの設定が必要な場合は、requestsライブラリを使用することをお勧めします。
まとめ
urllibを使用することで、PythonでWebページを取得することができます。GETリクエストにパラメーターを付けて送信する方法、GETリクエストのパラメーターのエンコーディングについて、GETリクエストの結果からステータスコードを取得する方法を説明しました。また、urllibの注意点とトラブルシューティングについても解説しました。

![[Python]JSONパース(parse)の基本(example、requests)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-165.jpg)


![[Python]printのflushを省略しない理由と、文字と変数の表示](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/12/1-1343.jpg)
![[Python]再帰関数を使ったプログラミング 高速化のテクニック](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/12/1-1373.jpg)