<?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>python requests post - Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</title>
	<atom:link href="https://python.ivan-shamaev.ru/tag/python-requests-post/feed/" rel="self" type="application/rss+xml" />
	<link>https://python.ivan-shamaev.ru/tag/python-requests-post/</link>
	<description>Библиотеки обработки данных. Примеры. Строки, списки, файлы, числа, массивы. Язык программирования Python 3 - скачать</description>
	<lastBuildDate>Thu, 11 Jun 2020 06:40:59 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://python.ivan-shamaev.ru/wp-content/uploads/2019/04/cropped-data_science_python3_logo-32x32.png</url>
	<title>python requests post - Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</title>
	<link>https://python.ivan-shamaev.ru/tag/python-requests-post/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Python API Tutorial: Примеры GET POST AUTH requests (HTTP запросов)</title>
		<link>https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/</link>
					<comments>https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/#comments</comments>
		
		<dc:creator><![CDATA[Шамаев Иван]]></dc:creator>
		<pubDate>Sun, 05 Apr 2020 10:06:57 +0000</pubDate>
				<category><![CDATA[Data Science. Data Analytics]]></category>
		<category><![CDATA[Работа с API. Выгрузка данных. Подключение к источникам]]></category>
		<category><![CDATA[get post requests python]]></category>
		<category><![CDATA[get request]]></category>
		<category><![CDATA[post get request]]></category>
		<category><![CDATA[post request]]></category>
		<category><![CDATA[python 3 api data]]></category>
		<category><![CDATA[python http request]]></category>
		<category><![CDATA[python requests get]]></category>
		<category><![CDATA[python requests headers]]></category>
		<category><![CDATA[python requests json]]></category>
		<category><![CDATA[python requests lib]]></category>
		<category><![CDATA[python requests post]]></category>
		<category><![CDATA[python requests документация]]></category>
		<category><![CDATA[request method post]]></category>
		<category><![CDATA[request python 3]]></category>
		<category><![CDATA[requests lib python 3]]></category>
		<category><![CDATA[requests post]]></category>
		<category><![CDATA[requests post data]]></category>
		<category><![CDATA[requests post json]]></category>
		<category><![CDATA[requests python скачать]]></category>
		<category><![CDATA[requests session python]]></category>
		<category><![CDATA[requests многопоточность python]]></category>
		<category><![CDATA[библиотека requests python]]></category>
		<category><![CDATA[модуль requests python]]></category>
		<guid isPermaLink="false">https://python.ivan-shamaev.ru/?p=901</guid>

					<description><![CDATA[<p>В этом уроке по API Python мы узнаем, как получать данные для проектов по науке о данных. В Интернете существуют миллионы API, которые предоставляют доступ к данным. Такие сайты, как Bitrix24, AmoCRM, Yandex API, Twitter, Instagram, VK и Facebook, предлагают определенные данные через свои API. Это могут быть данные предоставляемые только тем, у кого есть [&#8230;]</p>
<p>Сообщение <a href="https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/">Python API Tutorial: Примеры GET POST AUTH requests (HTTP запросов)</a> появились сначала на <a href="https://python.ivan-shamaev.ru">Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_vk" href="https://www.addtoany.com/add_to/vk?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="VK" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&#038;title=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" data-a2a-url="https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/" data-a2a-title="Python API Tutorial: Примеры GET POST AUTH requests (HTTP запросов)"></a></p><p>В этом уроке по API Python мы узнаем, как получать данные для проектов по науке о данных. В Интернете существуют миллионы API, которые предоставляют доступ к данным. Такие сайты, как Bitrix24, AmoCRM, Yandex API, Twitter, Instagram, VK и Facebook, предлагают определенные данные через свои API. Это могут быть данные предоставляемые только тем, у кого есть access_token, либо API с открытым доступом.</p>
<blockquote><p><strong>Python API Tutorial:</strong> Примеры GET POST AUTH requests (HTTP запросов). Структура запроса GET и POST. Выгрузка данных из API облачных систем</p></blockquote>
<p><span>Чтобы использовать API, вы отправляете запрос на удаленный веб-сервер и извлекаете необходимые данные.</span></p>
<h2><strong>Что такое API?</strong></h2>
<p><span>API (Application Programming Interface) или интерфейс прикладного программирования &#8212; это сервер, который вы можете использовать для извлечения и отправки данных с использованием кода (запросов). API-интерфейсы чаще всего используются для извлечения данных, и это будет основной темой этого урока для начинающих.</span></p>
<p><span>Когда мы хотим получить данные из API, нам нужно сделать </span><strong><span>запрос</span></strong><span>. Запросы используются во всем Интернете. Например, когда вы открываете страницу сайта, то сначала ваш веб-браузер отправляет URL-запрос на веб-сервер хостинга (где расположен сайт), а хостинг возвращает некоторое содержимое этой веб-страницы.</span></p>
<p><a href="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/page_request_content_http.png"><img fetchpriority="high" decoding="async" src="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/page_request_content_http.png" alt="" width="676" height="415" class="aligncenter size-full wp-image-907" srcset="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/page_request_content_http.png 676w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/page_request_content_http-300x184.png 300w" sizes="(max-width: 676px) 100vw, 676px" /></a></p>
<p>Запросы API работают точно так же &#8212; вы отправляете запрос на сервер API для данных, а сервер возвращает ответ. API Необходимы для того, чтобы не давать прямой доступ к базе данных. Т.к. при прямом доступе к БД очень велика вероятность неправильных действий, что может привести к различным ошибкам.</p>
<p><a href="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/api_request_response.png"><img decoding="async" src="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/api_request_response.png" alt="" width="1187" height="350" class="aligncenter size-full wp-image-913" srcset="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/api_request_response.png 1187w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/api_request_response-300x88.png 300w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/api_request_response-1024x302.png 1024w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/api_request_response-768x226.png 768w" sizes="(max-width: 1187px) 100vw, 1187px" /></a></p>
<h2><strong>GET и POST запросы с использованием Python</strong></h2>
<p>Существует два метода запросов HTTP (протокол передачи гипертекста): запросы GET и POST в Python.</p>
<h3><strong><span>Что такое HTTP/HTTPS?</span></strong><br />
<span></span></h3>
<p><span><strong>HTTP</strong> &#8212; это набор протоколов, предназначенных для обеспечения связи между клиентами и серверами. Он работает как протокол запроса-ответа между клиентом и сервером.</span></p>
<p><span>Веб-браузер может быть клиентом, а приложение на компьютере, на котором размещен веб-сайт, может быть сервером.</span></p>
<p><span>Итак, чтобы запросить ответ у сервера, в основном используют два метода:</span></p>
<ol>
<li><strong><span>GET</span></strong><span>: запросить данные с сервера. Т.е. мы отправляем только URL (HTTP) запрос без данных. Метод HTTP GET предназначен для получения информации от сервера. В рамках GET-запроса некоторые данные могут быть переданы в строке запроса URI в формате параметров (например, условия поиска, диапазоны дат, ID Объекта, номер счетчика и т.д.).</span></li>
<li><strong><span>POST</span></strong><span>: отправить данные для обработки на сервер (и получить ответ от сервера). Мы отправляем набор информации, набор параметров для API. Метод запроса POST предназначен для запроса, при котором веб-сервер принимает данные, заключённые в тело сообщения POST запроса.</span></li>
</ol>
<p><span>Чтобы сделать HTTP-запросы в python, мы можем использовать несколько HTTP-библиотек, таких как:</span></p>
<ul>
<li><a href="https://docs.python.org/2/library/httplib.html" target="_blank" rel="noopener noreferrer"><span>HTTPLIB</span></a></li>
<li><a href="https://docs.python.org/2/library/urllib.html" target="_blank" rel="noopener noreferrer"><span>URLLIB</span></a></li>
<li><a href="http://docs.python-requests.org/en/master/" target="_blank" rel="noopener noreferrer"><span>REQUESTS</span></a></li>
</ul>
<p><span>Самая элегантная и простая из перечисленных выше библиотек &#8212; это <strong>Requests</strong>. Библиотека запросов не является частью стандартной библиотеки Python, поэтому вам нужно установить ее, чтобы начать работать с ней.</span></p>
<p>Если вы используете <strong>pip</strong> для управления вашими пакетами <strong>Python</strong>, вы можете устанавливать запросы, используя следующую команду:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">pip install requests</pre>
<p>Если вы используете <strong>conda</strong>, вам понадобится следующая команда:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">conda install requests</pre>
<p>После того, как вы установили библиотеку, вам нужно будет ее импортировать. Давайте начнем с этого важного шага:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">import requests</pre>
<h3 id="Making-Our-First-API-Request"><strong>Синтаксис / структура получения данных через GET/POST запросы к API</strong><a class="anchor-link" href="https://www.dataquest.io/blog/python-api-tutorial/#Making-Our-First-API-Request"></a></h3>
<p><span>Есть много разных типов запросов. Наиболее часто используемый, </span><strong><span>GET</span></strong><span> запрос, используется для получения данных.</span></p>
<p><span>Когда мы делаем запрос, ответ от API сопровождается </span><strong><span>кодом ответа,</span></strong><span> который сообщает нам, был ли наш запрос успешным. Коды ответов важны, потому что они немедленно сообщают нам, если что-то пошло не так.</span></p>
<p><a href="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_get_request_response_code_response_data.png"><img decoding="async" src="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_get_request_response_code_response_data.png" alt="" width="590" height="298" class="aligncenter size-full wp-image-920" srcset="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_get_request_response_code_response_data.png 590w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_get_request_response_code_response_data-300x152.png 300w" sizes="(max-width: 590px) 100vw, 590px" /></a></p>
<p><span>Чтобы сделать запрос «GET», мы будем использовать </span><code>requests.get()</code> <span>функцию</span><span>.</span></p>
<p><span>Метод </span><code class="w3-codespan">post()</code><span> используется, когда вы хотите отправить некоторые данные на сервер.</span></p>
<p><a href="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_post_response_code_python_data.png"><img decoding="async" src="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_post_response_code_python_data.png" alt="" width="590" height="298" class="aligncenter size-full wp-image-930" srcset="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_post_response_code_python_data.png 590w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/server_api_request_post_response_code_python_data-300x152.png 300w" sizes="(max-width: 590px) 100vw, 590px" /></a></p>
<p>Ниже приведена подборка различных примеров использования запросов <strong>GET</strong> и <strong>POST</strong> через библиотеку <strong>REQUESTS</strong>. Безусловно, существует еще больше разных случаев. Всегда прежде чем, писать запрос, необходимо обратиться к официальной документации API (например, у Yandex есть документация к API различных сервисов, у Bitrix24 есть документация к API, у AmoCRM есть дока по API, у сервисов Google есть дока по API и т.д.). Вы смотрите какие методы есть у API, какие запросы API принимает, какие данные нужны для API, чтобы он мог выдать информацию в соответствии с запросом. Как авторизоваться, как обновлять ключи доступа (access_token). Все эти моменты могут быть реализованы по разному и всегда нужно ответ искать в официальной документации у поставщика API.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">#GET запрос без параметров
response = requests.get('https://api-server-name.com/methodname_get')

#GET запрос с параметрами в URL
response = requests.get("https://api-server-name.com/methodname_get?param1=ford&amp;param2=-234&amp;param3=8267")

# URL запроса преобразуется в формат https://api-server-name.com/methodname_get?key2=value2&amp;key1=value1
param_request = {'key1': 'value1', 'key2': 'value2'}  
response = requests.get('https://api-server-name.com/methodname_get', params=param_request)

#GET запрос с заголовком
url = 'https://api-server-name.com/methodname_get'  
headers = {'user-agent': 'my-app/0.0.1'}  
response = requests.get(url, headers=headers)

#POST запрос с параметрами в запросе
response = requests.post('https://api-server-name.com/methodname_post', data = {'key':'value'})

#POST запрос с параметрами через кортеж
param_tuples = [('param1', 'value1'), ('param1', 'value2')]  
response = requests.post('https://api-server-name.com/methodname_post', data=param_tuples)

#POST запрос с параметрами через словарь
param_dict = {'param': ['value1', 'value2']}  
response = requests.post('https://api-server-name.com/methodname_post', data=payload_dict) 

#POST запрос с параметрами в формате JSON
import json  
url = 'https://api-server-name.com/methodname_post'  
param_dict = {'param': 'data'}  
response = requests.post(url, data=json.dumps(param_dict))</pre>
<h2>Коды состояния API</h2>
<p><span>Коды состояния возвращаются при каждом запросе к веб-серверу. Коды состояния указывают информацию о том, что произошло с запросом. </span></p>
<p class="summary"><strong><span class="seoSummary">Ответы сгруппированы в пять классов:</span></strong></p>
<ol>
<li class="summary"><span class="seoSummary"><span>Информационные ответы ( </span><code>100</code><span>&#8212; </span><code>199</code><span>),</span></span></li>
<li class="summary"><span class="seoSummary"><span>Успешные ответы ( </span><code>200</code><span>&#8212; </span><code>299</code><span>),</span></span></li>
<li class="summary"><span class="seoSummary"><span>Перенаправления ( </span><code>300</code><span>&#8212; </span><code>399</code><span>),</span></span></li>
<li class="summary"><span class="seoSummary"><span>Ошибки клиента ( </span><code>400</code><span>&#8212; </span><code>499</code><span>),</span></span></li>
<li class="summary"><span class="seoSummary"><span>и ошибки сервера ( </span><code>500</code><span>&#8212; </span><code>599</code><span>).</span></span></li>
</ol>
<p><span>Вот некоторые коды, которые относятся к запросам </span><em><span>GET</span></em><span>:</span></p>
<ul>
<li><code>200</code><span>: Все прошло хорошо и результат был возвращен (если есть).</span></li>
<li><code>301</code><span>: Сервер перенаправляет вас на другую конечную точку. Это может произойти, когда компания меняет доменные имена или имя конечной точки изменяется.</span></li>
<li><code>400</code><span>: Сервер считает, что вы сделали неверный запрос. Это может произойти, если вы отправите неверные данные.</span></li>
<li><code>401</code><span>: Сервер думает, что вы не аутентифицированы. Для многих API требуются учетные данные для входа, поэтому код 401 случается, когда вы отправляете неверные учетные данные для доступа к API.</span></li>
<li><code>403</code><span>: Ресурс, к которому вы пытаетесь получить доступ, запрещен: у вас нет прав для его просмотра.</span></li>
<li><code>404</code><span>: Ресурс, к которому вы пытались получить доступ, не найден на сервере.</span></li>
<li><code>503</code><span>: Сервер не готов обработать запрос.</span></li>
</ul>
<p>Посмотреть информацию по другим ошибкам можно по ссылке <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status" target="_blank" rel="noopener noreferrer">HTTP response status codes</a>.</p>
<h2 id="Working-with-JSON-Data-in-Python"><strong>Работа с данными JSON в Python</strong><a class="anchor-link" href="https://www.dataquest.io/blog/python-api-tutorial/#Working-with-JSON-Data-in-Python"></a></h2>
<p><strong>JSON</strong><span><strong> (JavaScript Object Notation)</strong> &#8212; это язык API. <strong>JSON</strong> &#8212; это способ кодирования структур данных, который простоту чтения данных машинами. <strong>JSON</strong> &#8212; это основной формат, в котором данные передаются туда и обратно в API, и большинство серверов API отправляют свои ответы в формате JSON.</span></p>
<p><span>JSON выглядит так, как будто он содержит словари, списки, строки и целые числа Python. </span><span>Вы можете думать о JSON как о комбинации этих объектов, представленных в виде строк.</span></p>
<p>Рассмотрим пример:</p>
<p><a href="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/python_json_list_dictionary.png"><img decoding="async" src="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/python_json_list_dictionary.png" alt="" width="733" height="494" class="aligncenter size-full wp-image-924" srcset="https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/python_json_list_dictionary.png 733w, https://python.ivan-shamaev.ru/wp-content/uploads/2020/04/python_json_list_dictionary-300x202.png 300w" sizes="(max-width: 733px) 100vw, 733px" /></a></p>
<p><span>Python имеет отличный инструментарий для работы с данными в формате JSON (п</span><span>акет json &#8212; является частью стандартной библиотеки). Мы можем конвертировать </span><em><span>списки</span></em><span> и </span><em><span>словари</span></em><span> в JSON, а также конвертировать строки в </span><em><span>списки</span></em><span> и </span><em><span>словари</span></em><span>.</span></p>
<p><span>Библиотека JSON имеет две основные функции:</span></p>
<ul>
<li><code class="EnlighterJSRAW" data-enlighter-language="python">json.dumps()</code> &#8212; принимает объект Python и преобразует его в строку.</li>
<li><code class="EnlighterJSRAW" data-enlighter-language="python">json.loads()</code> &#8212; принимает строку JSON и преобразует (загружает) ее в объект Python.</li>
</ul>
<p><span>Функция </span><code>dumps()</code><span> особенно полезна, поскольку мы можем использовать ее для печати отформатированной строки, которая облегчает понимание вывода JSON.</span></p>
<p>Рассмотрим пример:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импорт библиотеки requests
import requests

# Запрос GET (Отправка только URL без параметров)
response = requests.get("http://api.open-notify.org/astros.json")
# Вывод кода
print(response.status_code)
# Вывод ответа, полученного от сервера API
print(response.json())</pre>
<p>Результат:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">200
{'people': [{'craft': 'ISS', 'name': 'Andrew Morgan'}, {'craft': 'ISS', 'name': 'Oleg Skripochka'}, {'craft': 'ISS', 'name': 'Jessica Meir'}], 'message': 'success', 'number': 3}</pre>
<p>Теперь попробуем применить функцию dump() &#8212; структура данных станет более наглядна:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импорт библиотеки requests
import requests
# Импорт библиотеки json
import json

def jprint(obj):
    # create a formatted string of the Python JSON object
    text = json.dumps(obj, sort_keys=True, indent=4)
    print(text)

# Запрос GET (Отправка только URL без параметров)
response = requests.get("http://api.open-notify.org/astros.json")

# Вывод ответа, через пользовательскую функцию jprint
jprint(response.json())</pre>
<p>Результат:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="json">{
    "message": "success",
    "number": 3,
    "people": [
        {
            "craft": "ISS",
            "name": "Andrew Morgan"
        },
        {
            "craft": "ISS",
            "name": "Oleg Skripochka"
        },
        {
            "craft": "ISS",
            "name": "Jessica Meir"
        }
    ]
}</pre>
<h2>Дополнительные команды для просмотра параметров Response библиотеки Requests Python</h2>
<p><strong>Пример скрипта Python:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импорт библиотеки requests
import requests

# Запрос GET (Отправка только URL без параметров)
response = requests.get("http://api.open-notify.org/iss-pass.json?lat=40.71&amp;lon=-74")

# Вывод ответа, через пользовательскую функцию jprint
print("response:\n{}\n\n".format(response))
print("response.url:\n{}\n\n".format(response.url))                 #Посмотреть формат URL (с параметрами)
print("response.headers:\n{}\n\n".format(response.headers))         #Header of the request
print("response.status_code:\n{}\n\n".format(response.status_code)) #Получить код ответа
print("response.text:\n{}\n\n".format(response.text))               #Text Output
print("response.encoding:\n{}\n\n".format(response.encoding))       #Узнать, какую кодировку использует Requests
print("response.content:\n{}\n\n".format(response.content))         #В бинарном виде
print("response.json():\n{}\n\n".format(response.json()))           #JSON Output</pre>
<p><strong>Результат:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">response:
&lt;Response [200]&gt;


response.url:
http://api.open-notify.org/iss-pass.json?lat=40.71&lon=-74


response.headers:
{'Server': 'nginx/1.10.3', 'Date': 'Tue, 07 Apr 2020 05:44:13 GMT', 'Content-Type': 'application/json', 'Content-Length': '519', 'Connection': 'keep-alive', 'Via': '1.1 vegur'}


response.status_code:
200


response.text:
{
  "message": "success", 
  "request": {
    "altitude": 100, 
    "datetime": 1586237266, 
    "latitude": 40.71, 
    "longitude": -74.0, 
    "passes": 5
  }, 
  "response": [
    {
      "duration": 540, 
      "risetime": 1586273822
    }, 
    {
      "duration": 654, 
      "risetime": 1586279549
    }, 
    {
      "duration": 596, 
      "risetime": 1586285414
    }, 
    {
      "duration": 561, 
      "risetime": 1586291303
    }, 
    {
      "duration": 623, 
      "risetime": 1586297135
    }
  ]
}



response.encoding:
None


response.content:
b'{\n  "message": "success", \n  "request": {\n    "altitude": 100, \n    "datetime": 1586237266, \n    "latitude": 40.71, \n    "longitude": -74.0, \n    "passes": 5\n  }, \n  "response": [\n    {\n      "duration": 540, \n      "risetime": 1586273822\n    }, \n    {\n      "duration": 654, \n      "risetime": 1586279549\n    }, \n    {\n      "duration": 596, \n      "risetime": 1586285414\n    }, \n    {\n      "duration": 561, \n      "risetime": 1586291303\n    }, \n    {\n      "duration": 623, \n      "risetime": 1586297135\n    }\n  ]\n}\n'


response.json():
{'message': 'success', 'request': {'altitude': 100, 'datetime': 1586237266, 'latitude': 40.71, 'longitude': -74.0, 'passes': 5}, 'response': [{'duration': 540, 'risetime': 1586273822}, {'duration': 654, 'risetime': 1586279549}, {'duration': 596, 'risetime': 1586285414}, {'duration': 561, 'risetime': 1586291303}, {'duration': 623, 'risetime': 1586297135}]}</pre>
<h2><strong>Примеры запросов GET с использованием библиотеки REQUESTS в PYTHON</strong></h2>
<p>Рассмотрим первый пример получения данных из Yandex Метрика API данных через метод get библиотеки requests.</p>
<h3><strong>Выгрузка данных из Яндекс Метрики с помощью библиотеки Requests.Get</strong></h3>
<p>Код запроса (номер счетчика и токен изменены):</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импортируем библиотеку requests 
import requests 
  
# Адрес api метода для запроса get 
url_param = "https://api-metrika.yandex.net/stat/v1/data"

# Задаем параметры для API
api_param = {
    "ids":"5251515",
    "metrics":"ym:s:users,ym:s:visits,ym:s:pageviews,ym:s:bounceRate,ym:s:pageDepth,ym:s:avgVisitDurationSeconds",
    "dimensions":"ym:s:date,ym:s:&lt;attribution&gt;TrafficSource,ym:s:&lt;attribution&gt;SourceEngine,ym:s:gender",
    "date1":"10daysAgo",
    "date2":"yesterday",
    "sort":"ym:s:date",
    "accuracy":"full",
    "limit":5
    }

header_params = {
    'GET': '/management/v1/counters HTTP/1.1',
    'Host': 'api-metrika.yandex.net',
    'Authorization': 'OAuth AgAAlkjlkjKAa976ZB-rXh-t-ookfJJcMP979ZU0',
    'Content-Type': 'application/x-yametrika+json'
    }

# Отправляем get request (запрос GET)
response = requests.get(
    url_param,
    params=api_param,
    headers=header_params
)

result = response.json()
query = result['query']
data = result['data']
print(query)
print('======================')
print(data)</pre>
<p><strong>Результат:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="json">{'ids': [5251515], 'dimensions': ['ym:s:date', 'ym:s:lastTrafficSource', 'ym:s:lastSourceEngine', 'ym:s:gender'], 'metrics': ['ym:s:users', 'ym:s:visits', 'ym:s:pageviews', 'ym:s:bounceRate', 'ym:s:pageDepth', 'ym:s:avgVisitDurationSeconds'], 'sort': ['ym:s:date'], 'date1': '2020-04-02', 'date2': '2020-04-11', 'limit': 5, 'offset': 1, 'group': 'Week', 'auto_group_size': '1', 'quantile': '50', 'offline_window': '21', 'attribution': 'Last', 'currency': 'RUB', 'adfox_event_id': '0'}
======================
[{'dimensions': [{'name': '2020-04-02'}, {'name': 'Internal traffic', 'icon_id': '-1', 'icon_type': 'traffic-source', 'id': 'internal'}, {'name': 'mydomain.ru', 'id': 'internal.mydomain.ru', 'favicon': 'mydomain.ru'}, {'name': 'Not specified', 'id': None}], 'metrics': [1.0, 1.0, 1.0, 0.0, 1.0, 16.0]}, {'dimensions': [{'name': '2020-04-02'}, {'name': 'Internal traffic', 'icon_id': '-1', 'icon_type': 'traffic-source', 'id': 'internal'}, {'name': 'mydomain.ru', 'id': 'internal.mydomain.ru', 'favicon': 'mydomain.ru'}, {'name': 'male', 'id': 'male'}], 'metrics': [3.0, 5.0, 8.0, 0.0, 1.6, 194.4]}, {'dimensions': [{'name': '2020-04-02'}, {'name': 'Internal traffic', 'icon_id': '-1', 'icon_type': 'traffic-source', 'id': 'internal'}, {'name': 'mydomain.ru', 'id': 'internal.mydomain.ru', 'favicon': 'mydomain.ru'}, {'name': 'female', 'id': 'female'}], 'metrics': [8.0, 9.0, 16.0, 0.0, 1.77777778, 91.77777778]}, {'dimensions': [{'name': '2020-04-02'}, {'name': 'Direct traffic', 'icon_id': '0', 'icon_type': 'traffic-source', 'id': 'direct'}, {'name': None, 'id': None, 'favicon': None}, {'name': 'Not specified', 'id': None}], 'metrics': [23.0, 29.0, 37.0, 44.82758621, 1.27586207, 34.79310345]}, {'dimensions': [{'name': '2020-04-02'}, {'name': 'Direct traffic', 'icon_id': '0', 'icon_type': 'traffic-source', 'id': 'direct'}, {'name': None, 'id': None, 'favicon': None}, {'name': 'male', 'id': 'male'}], 'metrics': [32.0, 50.0, 63.0, 4.0, 1.26, 44.74]}]</pre>
<h3><strong>Получим цены на нефть в формате JSON с ресурса oilpriceapi.com</strong></h3>
<p>Для получения токена, необходимо пройти регистрацию на сайте <a href="http://oilpriceapi.com" target="_blank" rel="noopener noreferrer">oilpriceapi.com</a>.</p>
<p><strong>Пример</strong> для токена <strong>984a45fflkj09j9870ujkheca7jj977658</strong> (у вас будет свой ключ доступа):</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импортируем библиотеку requests 
import requests

# Адрес api метода для запроса get
url = 'https://api.oilpriceapi.com/v1/prices/latest'
headers = {
    'Authorization': 'Token 984a45fflkj09j9870ujkheca7jj977658',
    'Content-Type': 'application/json'
}

# Отправляем get request (запрос GET)
response = requests.get(url = url, headers = headers)
data = response.json()
print(data)</pre>
<p><strong>Результат в формате json:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">{'status': 'success', 'data': {'price': 30.08, 'formatted': '$30.08', 'currency': 'USD', 'code': 'BRENT_CRUDE_USD', 'created_at': '2020-04-14T21:50:00.585Z', 'type': 'spot_price'}}</pre>
<h3><strong>Загрузить курс валют с помощью Requests GET в Python Pandas <span style="color: #ff6600;">cbr.ru</span></strong></h3>
<p>Пример загрузки курсов валют по конкретному дню в DataFrame Pandas Python. Курс валюты отдается в формате XML, поэтому нам понадобится дополнительная библиотека <strong>xml.etree.ElementTree:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импортируем библиотеку requests 
import requests
import pandas as pd 
import xml.etree.ElementTree as et 

v_date = '16.04.2020'

# Адрес api метода для запроса get
url = 'https://www.cbr.ru/scripts/XML_daily.asp'
params = {
    'date_req': v_date
}

# Отправляем get request (запрос GET)
response = requests.get(url, params)

tree = et.ElementTree(et.fromstring(response.text))
root = tree.getroot()

df_cols = ["date", "numcode", "charcode", "nominal", "name", "value"]
rows = []

for node in root:
    s_numcode = node.find("NumCode").text if node is not None else None
    s_charcode = node.find("CharCode").text if node is not None else None
    s_nominal = node.find("Nominal").text if node is not None else None
    s_name = node.find("Name").text if node is not None else None
    s_value = node.find("Value").text if node is not None else None
    
    rows.append({"date": v_date, "numcode": s_numcode,
                 "charcode": s_charcode, "nominal": s_nominal,
                 "name": s_name, "value": s_value})

df = pd.DataFrame(rows, columns = df_cols)
print(df.head())</pre>
<p><strong>Результат:</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">         date numcode  ...                                      name    value
0  16.04.2020     036  ...                      Австралийский доллар  46,7719
1  16.04.2020     944  ...                     Азербайджанский манат  43,4509
2  16.04.2020     826  ...  Фунт стерлингов Соединенного королевства  92,2684
3  16.04.2020     051  ...                          Армянских драмов  15,1801
4  16.04.2020     933  ...                         Белорусский рубль  30,0814

[5 rows x 6 columns]</pre>
<h3><strong>Получаем данные по вакансиям с сайта <span style="color: #ff6600;">hh.ru</span> через API с помощью Python Requests Get</strong></h3>
<p>У сайта hh есть API, вся свежая информация находится на сайте <a href="https://python.ivan-shamaev.ru/%d0%ba%d0%b0%d1%80%d1%82%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%b0-%d0%b2%d1%81%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d1%8c%d0%b8-%d0%b1%d0%bb%d0%be%d0%b3%d0%b0-%d0%bf%d1%80%d0%be-python/" target="_blank" rel="noopener noreferrer">https://dev.hh.ru/</a> и в документации <a href="https://github.com/hhru/api" target="_blank" rel="noopener noreferrer">https://github.com/hhru/api</a>. В рамках примера будет использован <strong><a href="https://github.com/hhru/api/blob/master/docs/vacancies.md" target="_blank" rel="noopener noreferrer">метод vacancies</a></strong>.</p>
<p>Скрипт запроса:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импортируем библиотеку requests 
import requests
import pandas as pd

page_number = 0
search_str = "qlik"
area_str = "1"

# Адрес api метода для запроса get
url = 'https://api.hh.ru/vacancies'
param = {
    "text":search_str,
    "area":area_str,
    "page":page_number
    }

# Отправляем get request (запрос GET)
response = requests.get(url,param)
data = response.json()

#Создаем пустой dict (словать данных)
dict_data = {}
dict_number = 0

# Количество страниц
for i in range(0,data['pages']):
    param_cycle = {
            "text":search_str,
            "area":area_str,
            "page":i
        }

    response_cycle = requests.get(url,param_cycle)
    print("ЗАПРОС №" + str(i))

    result = dict(response_cycle.json())
    result = result['items']
    #Парсим исходный list формата Json в dictionary (словарь данных)
    for y in range(0, len(result)-1):
        dict_data[dict_number] = {
            'id':result[y]['id'],
            'premium':result[y]['premium'],
            'name':result[y]['name'],
            'department':result[y]['department'],
            'has_test':result[y]['has_test'],
            'area_name':result[y]['area']['name'],
            'salary':result[y]['salary'],
            'type_name':result[y]['type']['name'],
            'snippet_requirement':result[y]['snippet']['requirement']
        }
        dict_number = dict_number + 1
    
    print("==================================")

print(dict_data[0])</pre>
<p>Результат выполнения скрипта:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">ЗАПРОС №0
==================================
ЗАПРОС №1
==================================
ЗАПРОС №2
==================================
ЗАПРОС №3
==================================
ЗАПРОС №4
==================================
ЗАПРОС №5
==================================
{'id': '36694453', 'premium': False, 'name': 'Аналитик', 'department': None, 'has_test': False, 'area_name': 'Москва', 'salary': None, 'type_name': 'Открытая', 'snippet_requirement': 'Продвинутый пользователь MS Exсel, SQL - простые запросы, пользователь одной или нескольких BI систем - Tableu, &lt;highlighttext&gt;Qlik&lt;/highlighttext&gt; sense, Power BI, Microstrategy. '}</pre>
<h3><strong>Пример выгрузки данных из Bitrix24 с использованием requests, pandas и Thread</strong></h3>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import os
import requests
import pandas as pd
from urllib.request import urlopen
from threading import Thread
 
class DownloadThread(Thread):
    """
    Пример многопоточной загрузки данных из Bitrix24
    """
    
    def __init__(self, item, name, url_param, start_param, total, method_name):
        """Инициализация потока"""
        Thread.__init__(self)
        self.item = item
        self.name = name
        self.url_param = url_param
        self.start_param = start_param
        self.total = total
        self.method_name = method_name
    
    def run(self):
        """Запуск потока"""
        msg_start = "Поток %s стартовал загрузку start_param = %s, total = %s" % (self.name, self.start_param, self.total)
        print("")

        result_data=[]
        for i in range (self.start_param, self.total, 50):
            
            # Задаем параметры для API
            param = {
                "start": str(i)
                }
            
            # Отправляем get request (запрос GET)
            response = requests.get(self.url_param,param)
                
            result = response.json()
            data = result['result']
            result_data += data

        dict_data = {}
        
        for j in range(0,len(result_data)):
            dict_data[j] = dict(result_data[j])


        #Создаем DataFrame из dict (словаря данных или массива данных)
        dict_keys = dict_data[0].keys()
        df = pd.DataFrame.from_dict(dict_data, orient='index',columns=dict_keys)
        df = df.replace('\n',' ', regex=True)

        df.to_excel(self.method_name + "_" + str(self.item) +  ".xlsx", sheet_name='data', index=False)
        
        msg_end = "Поток %s завершил загрузку start_param = %s, total = %s" % (self.name, self.start_param, self.total)
        print(msg_end)
        print("")
 
 
def main(url_param, list_totals, step, total_param, method_name):
    """
    Запуск программы
    """
    start_param = 0
    for item, val in enumerate(list_totals):
        name = "Поток %s" % (item+1)
        print(name)
        if (val + step)&lt;=total_param:
            total = val + step
        else:
            total = total_param
        thread = DownloadThread(item, name, url_param, start_param, total, method_name)
        thread.start()
        start_param = total
 
if __name__ == "__main__":

    # method
    method_name = "crm.deal.list"

    # Адрес api метода для запроса get 
    url_param = "https://crm.domain.ru/rest/1/56kjhoghius78yfpojj90/" + method_name 

    response = requests.get(url_param)
    result = response.json()
    total_param = result['total']
    step = 10000
    print(total_param)

    list_totals = list(range(0,total_param,step))

    main(url_param, list_totals, step, total_param, method_name)
</pre>
<h2><strong>Примеры запросов POST с использованием библиотеки REQUESTS в PYTHON</strong></h2>
<h3><strong>Выгрузка данных из Bitrix24 с фильтром по дате из REST API</strong></h3>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import requests

# method
method_name = "crm.deal.list"

# Адрес api метода для запроса get 
url_param = "https://domain.ru/rest/1/854984lkjdsijd432/" + method_name

params = {"filter[&gt;DATE_CREATE]": "2020-01-01T00:00:01+01:00"}

print(params)

response = requests.post(url_param, data = params)
result = response.json()
total = result['total']
print(total)</pre>
<h3><strong>Выгрузка данных из Bitrix24 с двумя фильтрами по дате из REST API</strong></h3>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import requests

# method
method_name = "crm.deal.list"

# Адрес api метода для запроса get 
url_param = "https://domain.ru/rest/1/854984lkjdsijd432/" + method_name

params = {
    "filter[&lt;DATE_CREATE]":"2019-01-01T00:00:01+01:00",
    "filter[&gt;DATE_CREATE]":"2020-01-01T00:00:01+01:00"
    }

print(params)

response = requests.post(url_param, data = params)
result = response.json()
total = result['total']
print(total)</pre>
<h3><strong>Пример полноценной выгрузки данных из Bitrix24 API в Excel с помощью библиотек Requests &amp; Pandas</strong></h3>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># Импортируем библиотеку requests 
import requests 
import pandas as pd
import datetime
import xlsxwriter

# Старт
print(datetime.datetime.now())

# method
method_name = "crm.deal.list"

# Адрес api метода для запроса get 
url_param = "https://crm.domain.ru/rest/1/oj98lLKHNldoij97tg/" + method_name

# Путь для сохранения данных
excel_path = "C:\\PythonETL\\0_ExtractData\\Bitrix24\\Excel\\crm.deal.list\\"

params = {
    "filter[&gt;=DATE_CREATE]":"2020-01-01 00:00:00"
    }

response = requests.post(url_param, params)
result = response.json()
total_param = result['total']
result_data=[]

print(total_param)


for i in range (0,total_param,50):
    for attempt in range(10):
        try:
            # Задаем параметры для API
            param = {
                "start": str(i),
                "filter[&gt;=DATE_CREATE]":"2020-01-01 00:00:00"
                }
            # Отправляем get request (запрос GET)
            response = requests.post(url_param,param)
                
            result = response.json()
            data = result['result']
            result_data += data
        except:
            print("Ошибка при попытке " + str(attempt))
            continue
        break

print("Данные выгрузились, собираем df")
dict_data = {}

for j in range(0,len(result_data)):
    dict_data[j] = dict(result_data[j])


#Создаем DataFrame из dict (словаря данных или массива данных)
dict_keys = dict_data[0].keys()
df = pd.DataFrame.from_dict(dict_data, orient='index',columns=dict_keys)

print("Выгружаем Excel")
#Выгрузка данных из DataFrame в Excel
df.to_excel(excel_path + method_name + "_2020"  +  ".xlsx", sheet_name='data', index=False, engine='xlsxwriter')


# Конец
print(datetime.datetime.now())</pre>
<p><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_vk" href="https://www.addtoany.com/add_to/vk?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="VK" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&amp;linkname=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-api-tutorial-get-post-auth-http-requests-examples%2F&#038;title=Python%20API%20Tutorial%3A%20%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%20GET%20POST%20AUTH%20requests%20%28HTTP%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2%29" data-a2a-url="https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/" data-a2a-title="Python API Tutorial: Примеры GET POST AUTH requests (HTTP запросов)"></a></p><p>Сообщение <a href="https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/">Python API Tutorial: Примеры GET POST AUTH requests (HTTP запросов)</a> появились сначала на <a href="https://python.ivan-shamaev.ru">Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://python.ivan-shamaev.ru/python-api-tutorial-get-post-auth-http-requests-examples/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
