<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>requests</title>
	<atom:link href="https://techgrowup.net/tag/requests/feed/" rel="self" type="application/rss+xml" />
	<link>https://techgrowup.net</link>
	<description>エンジニアを強くする</description>
	<lastBuildDate>Wed, 04 Dec 2024 16:21:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://techgrowup.net/wp-content/uploads/2021/05/hp-icon-150x150.png</url>
	<title>requests</title>
	<link>https://techgrowup.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Python開発入門31 PythonのRequestsライブラリを使ったHTTPリクエスト</title>
		<link>https://techgrowup.net/python-requests/</link>
					<comments>https://techgrowup.net/python-requests/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[techgrowup]]></dc:creator>
		<pubDate>Wed, 04 Dec 2024 16:21:31 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[requests]]></category>
		<guid isPermaLink="false">https://techgrowup.net/?p=2169</guid>

					<description><![CDATA[はじめに WebサービスやAPIと連携する際、PythonでのHTTPリクエスト処理は欠かせません。その中で最も使いやすいライブラリがRequestsです。 Requestsは、PythonでHTTPリクエストを簡単に送 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"><strong>はじめに</strong></h1>



<p>WebサービスやAPIと連携する際、PythonでのHTTPリクエスト処理は欠かせません。その中で最も使いやすいライブラリが<strong>Requests</strong>です。</p>



<p>Requestsは、PythonでHTTPリクエストを簡単に送信し、レスポンスを処理するためのライブラリです。この記事では、Requestsの基本的な使い方、便利な機能、トラブルシューティングについてわかりやすく解説します。</p>



<h2 class="wp-block-heading"><strong>Requestsライブラリとは</strong></h2>



<h3 class="wp-block-heading"><strong>概要</strong></h3>



<p>Requestsは、Python標準ライブラリの<code>urllib</code>の代替として設計された<strong>シンプルで直感的なHTTPリクエストライブラリ</strong>です。複雑なコードを書くことなく、HTTPリクエストの送信、レスポンスの処理が可能です。</p>



<h3 class="wp-block-heading"><strong>Requestsライブラリの主な特徴</strong></h3>



<ol class="wp-block-list">
<li><strong>シンプルな構文</strong><br>短いコードで直感的に操作可能。</li>



<li><strong>豊富なHTTPメソッドのサポート</strong><br>GET、POST、PUT、DELETE、HEADなどのリクエストを簡単に送信。</li>



<li><strong>セッション管理</strong><br>Cookieや認証情報の管理が可能。</li>



<li><strong>強力なエラーハンドリング</strong><br>ステータスコードの確認や例外処理が簡単。</li>
</ol>



<h2 class="wp-block-heading"><strong>Requestsのインストール</strong></h2>



<p>RequestsはPyPIで提供されており、以下のコマンドでインストールできます：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="pip install requests" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">pip</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">install</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">requests</span></span></code></pre></div>



<p><strong>インストールの確認：</strong><br>インストール後、以下のコマンドでバージョンを確認できます：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="pip show requests" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">pip</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">show</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">requests</span></span></code></pre></div>



<p><strong>出力例：</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="Name: requests
Version: 2.28.1
Summary: Python HTTP for Humans." style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">Name:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">requests</span></span>
<span class="line"><span style="color: #DCDCAA">Version:</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">2.28</span><span style="color: #CE9178">.1</span></span>
<span class="line"><span style="color: #DCDCAA">Summary:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Python</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">HTTP</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Humans.</span></span></code></pre></div>



<h2 class="wp-block-heading"><strong>基本的な使い方</strong></h2>



<h3 class="wp-block-heading"><strong>GETリクエスト</strong></h3>



<p>GETリクエストは、サーバーからデータを取得するために使用します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="import requests

response = requests.get(&quot;https://jsonplaceholder.typicode.com/posts/1&quot;)
print(response.status_code)  # ステータスコード
print(response.json())       # レスポンスのJSONデータ" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">import</span><span style="color: #D4D4D4"> requests</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">response = requests.get(</span><span style="color: #CE9178">&quot;https://jsonplaceholder.typicode.com/posts/1&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.status_code)  </span><span style="color: #6A9955"># ステータスコード</span></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.json())       </span><span style="color: #6A9955"># レスポンスのJSONデータ</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>requests.get</code>は指定されたURLにGETリクエストを送信します。</li>



<li><code>response.status_code</code>でHTTPステータスコードを確認。</li>



<li><code>response.json()</code>でレスポンスをJSON形式で取得します。</li>
</ul>



<h3 class="wp-block-heading"><strong>POSTリクエスト</strong></h3>



<p>POSTリクエストは、サーバーにデータを送信するために使用します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="import requests

data = {&quot;title&quot;: &quot;foo&quot;, &quot;body&quot;: &quot;bar&quot;, &quot;userId&quot;: 1}
response = requests.post(&quot;https://jsonplaceholder.typicode.com/posts&quot;, json=data)
print(response.status_code)  # ステータスコード
print(response.json())       # サーバーからのレスポンス" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">import</span><span style="color: #D4D4D4"> requests</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">data = {</span><span style="color: #CE9178">&quot;title&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;foo&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;body&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;bar&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;userId&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">}</span></span>
<span class="line"><span style="color: #D4D4D4">response = requests.post(</span><span style="color: #CE9178">&quot;https://jsonplaceholder.typicode.com/posts&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">json</span><span style="color: #D4D4D4">=data)</span></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.status_code)  </span><span style="color: #6A9955"># ステータスコード</span></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.json())       </span><span style="color: #6A9955"># サーバーからのレスポンス</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>json=data</code>で送信データを指定します。</li>



<li>サーバーからのレスポンスもJSON形式で取得可能です。</li>
</ul>



<h3 class="wp-block-heading"><strong>ヘッダーの追加</strong></h3>



<p>カスタムヘッダーを追加する場合、以下のように設定します：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="headers = {&quot;Authorization&quot;: &quot;Bearer YOUR_ACCESS_TOKEN&quot;}
response = requests.get(&quot;https://api.example.com/data&quot;, headers=headers)
print(response.text)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">headers = {</span><span style="color: #CE9178">&quot;Authorization&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;Bearer YOUR_ACCESS_TOKEN&quot;</span><span style="color: #D4D4D4">}</span></span>
<span class="line"><span style="color: #D4D4D4">response = requests.get(</span><span style="color: #CE9178">&quot;https://api.example.com/data&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">headers</span><span style="color: #D4D4D4">=headers)</span></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.text)</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>headers</code>引数でカスタムヘッダーを指定します。</li>



<li>認証情報やAPIキーを送信する際に使用します。</li>
</ul>



<h3 class="wp-block-heading"><strong>タイムアウトの設定</strong></h3>



<p>リクエストにタイムアウトを設定することで、長時間待機を回避できます：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="response = requests.get(&quot;https://api.example.com/data&quot;, timeout=5)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">response = requests.get(</span><span style="color: #CE9178">&quot;https://api.example.com/data&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">timeout</span><span style="color: #D4D4D4">=</span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">)</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>timeout=5</code>は、リクエストが5秒以上かかった場合にエラーをスローします。</li>
</ul>



<h2 class="wp-block-heading"><strong>応用的な使い方</strong></h2>



<h3 class="wp-block-heading"><strong>セッション管理</strong></h3>



<p>複数のリクエストでCookieやヘッダーを共有する場合、セッションを使用します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="with requests.Session() as session:
    session.headers.update({&quot;Authorization&quot;: &quot;Bearer YOUR_ACCESS_TOKEN&quot;})
    response = session.get(&quot;https://api.example.com/data&quot;)
    print(response.text)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">with</span><span style="color: #D4D4D4"> requests.Session() </span><span style="color: #C586C0">as</span><span style="color: #D4D4D4"> session:</span></span>
<span class="line"><span style="color: #D4D4D4">    session.headers.update({</span><span style="color: #CE9178">&quot;Authorization&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;Bearer YOUR_ACCESS_TOKEN&quot;</span><span style="color: #D4D4D4">})</span></span>
<span class="line"><span style="color: #D4D4D4">    response = session.get(</span><span style="color: #CE9178">&quot;https://api.example.com/data&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.text)</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>requests.Session()</code>を使用すると、複数のリクエスト間で状態を共有できます。</li>
</ul>



<h3 class="wp-block-heading"><strong>ファイルのアップロード</strong></h3>



<p>ファイルをサーバーにアップロードする場合：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="files = {&quot;file&quot;: open(&quot;example.txt&quot;, &quot;rb&quot;)}
response = requests.post(&quot;https://api.example.com/upload&quot;, files=files)
print(response.status_code)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">files = {</span><span style="color: #CE9178">&quot;file&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #DCDCAA">open</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;example.txt&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;rb&quot;</span><span style="color: #D4D4D4">)}</span></span>
<span class="line"><span style="color: #D4D4D4">response = requests.post(</span><span style="color: #CE9178">&quot;https://api.example.com/upload&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">files</span><span style="color: #D4D4D4">=files)</span></span>
<span class="line"><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(response.status_code)</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>files</code>引数でファイルを送信できます。</li>



<li>ファイルオブジェクトを<code>open()</code>で開き、送信します。</li>
</ul>



<h3 class="wp-block-heading"><strong>プロキシの利用</strong></h3>



<p>プロキシを通じてリクエストを送信する場合：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="proxies = {&quot;http&quot;: &quot;http://proxy.example.com:8080&quot;}
response = requests.get(&quot;https://api.example.com/data&quot;, proxies=proxies)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">proxies = {</span><span style="color: #CE9178">&quot;http&quot;</span><span style="color: #D4D4D4">: </span><span style="color: #CE9178">&quot;http://proxy.example.com:8080&quot;</span><span style="color: #D4D4D4">}</span></span>
<span class="line"><span style="color: #D4D4D4">response = requests.get(</span><span style="color: #CE9178">&quot;https://api.example.com/data&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">proxies</span><span style="color: #D4D4D4">=proxies)</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>proxies</code>引数でプロキシサーバーを指定します。</li>
</ul>



<h2 class="wp-block-heading"><strong>エラーハンドリング</strong></h2>



<h3 class="wp-block-heading"><strong>ステータスコードの確認</strong></h3>



<p>ステータスコードを手動で確認することでエラー処理が可能です：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="response = requests.get(&quot;https://api.example.com/data&quot;)
if response.status_code == 200:
    print(&quot;Success!&quot;)
else:
    print(f&quot;Error: {response.status_code}&quot;)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">response = requests.get(</span><span style="color: #CE9178">&quot;https://api.example.com/data&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> response.status_code == </span><span style="color: #B5CEA8">200</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Success!&quot;</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #C586C0">else</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;Error: </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">response.status_code</span><span style="color: #569CD6">}</span><span style="color: #CE9178">&quot;</span><span style="color: #D4D4D4">)</span></span></code></pre></div>



<h3 class="wp-block-heading"><strong>例外処理</strong></h3>



<p>リクエスト中に発生する例外を処理するには：</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="try:
    response = requests.get(&quot;https://api.example.com/data&quot;, timeout=5)
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print(f&quot;An error occurred: {e}&quot;)" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #C586C0">try</span><span style="color: #D4D4D4">:</span></span>
<span class="line"><span style="color: #D4D4D4">    response = requests.get(</span><span style="color: #CE9178">&quot;https://api.example.com/data&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">timeout</span><span style="color: #D4D4D4">=</span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">    response.raise_for_status()</span></span>
<span class="line"><span style="color: #C586C0">except</span><span style="color: #D4D4D4"> requests.exceptions.RequestException </span><span style="color: #C586C0">as</span><span style="color: #D4D4D4"> e:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">print</span><span style="color: #D4D4D4">(</span><span style="color: #569CD6">f</span><span style="color: #CE9178">&quot;An error occurred: </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4">e</span><span style="color: #569CD6">}</span><span style="color: #CE9178">&quot;</span><span style="color: #D4D4D4">)</span></span></code></pre></div>



<p><strong>説明：</strong></p>



<ul class="wp-block-list">
<li><code>raise_for_status()</code>は、HTTPエラーが発生した場合に例外をスローします。</li>
</ul>



<h2 class="wp-block-heading"><strong>Requestsを使う際の注意点</strong></h2>



<ol class="wp-block-list">
<li><strong>認証情報の管理</strong><br>APIキーやトークンを含むリクエストを送信する際、機密情報が外部に漏れないように注意しましょう。</li>



<li><strong>適切なタイムアウト設定</strong><br>タイムアウトを設定することで、リクエストの待機時間を制限できます。</li>



<li><strong>レスポンスの検証</strong><br>サーバーからのレスポンスデータを適切に検証することで、エラーや不正データを回避できます。</li>
</ol>



<h2 class="wp-block-heading"><strong>まとめ</strong></h2>



<p>Requestsライブラリは、PythonでのHTTPリクエストを簡単かつ効率的に操作するための非常に強力なツールです。この記事で紹介した基本操作や応用例を活用して、Web APIや外部サービスとの連携をスムーズに行いましょう！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techgrowup.net/python-requests/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: techgrowup.net @ 2026-04-21 20:47:12 by W3 Total Cache
-->