国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python 網絡請求庫 requests 的十個基本用法

開發 后端 網絡
無論你是想抓取網頁數據還是測試API接口,requests都能派上大用場。下面我們就一起來看看如何使用requests完成一些常見的任務。

大家好!今天我們要聊聊Python中非常實用的一個庫——requests。這個庫讓發送HTTP請求變得超級簡單。無論你是想抓取網頁數據還是測試API接口,requests都能派上大用場。下面我們就一起來看看如何使用requests完成一些常見的任務。

引言

隨著互聯網技術的發展,HTTP請求成為開發者們日常工作中不可或缺的一部分。Python語言以其簡潔易用的特點,成為眾多開發者首選的編程語言之一。而requests庫作為Python中最受歡迎的HTTP客戶端庫之一,更是大大簡化了發送HTTP請求的過程。本文將詳細介紹如何利用requests庫執行各種類型的HTTP請求,從基礎的GET請求到復雜的認證、文件上傳等高級功能。

發送GET請求

首先,你需要安裝requests庫。打開命令行工具,輸入以下命令:

pip install requests

安裝完成后,就可以開始使用了。最簡單的GET請求如下:

import requests

# 發送GET請求
response = requests.get('https://api.github.com')

# 輸出響應的內容
print(response.text)

這里的response.text會打印出響應的內容。如果你想獲取特定信息,可以解析返回的數據。比如,如果返回的是JSON格式的數據,可以用response.json()方法將其轉換為Python字典。

獲取頁面的二進制數據

有時候我們需要獲取圖片或文件等二進制數據,這時可以使用requests.get方法并指定stream=True來實現。

response = requests.get('https://example.com/image.jpg', stream=True)

if not response.ok:
    print("Something went wrong")
else:
    # 將數據保存到本地
    with open('image.jpg', 'wb') as f:
        for chunk in response.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)

這段代碼會將圖片下載到當前目錄下。

添加查詢參數

很多時候,我們需要向URL添加查詢參數。這可以通過傳遞一個字典給params參數來實現:

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://httpbin.org/get', params=payload)

print(response.url)  # 輸出: https://httpbin.org/get?key1=value1&key2=value2

這里httpbin.org是一個測試HTTP請求的好地方。

發送POST請求

發送POST請求也很簡單,只需要調用requests.post方法,并傳入要發送的數據即可:

data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)

print(response.text)  # 輸出POST請求的內容

處理JSON數據

當服務器返回JSON格式的數據時,我們可以直接使用response.json()來解析它:

response = requests.get('https://api.github.com/events')
json_response = response.json()

for event in json_response:
    print(event['type'])

這段代碼會打印出GitHub API返回的所有事件類型。

設置自定義Header

如果你需要設置HTTP頭部信息,可以通過headers參數來實現:

headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://www.example.com', headers=headers)

print(response.text[:100])  # 打印前100個字符

設置User-Agent可以幫助我們模擬瀏覽器行為。

發送帶認證信息的請求

有時我們需要訪問需要認證的網站或API。requests庫提供了多種認證方式,包括基本認證(Basic Auth)和OAuth等。下面我們來看一個基本認證的例子:

from requests.auth import HTTPBasicAuth

auth = HTTPBasicAuth('username', 'password')
response = requests.get('https://api.example.com/secure', auth=auth)

print(response.text)

在這個例子中,我們使用了HTTPBasicAuth類來提供用戶名和密碼進行認證。

發送帶有表單數據的請求

當我們需要提交表單數據時,可以使用requests.post方法,并通過data參數傳遞字典形式的數據:

data = {'name': 'John Doe', 'email': 'john@example.com'}
response = requests.post('https://example.com/submit', data=data)

print(response.text)

這段代碼會發送包含名字和郵箱的POST請求。

發送帶有文件的請求

在上傳文件時,可以使用requests.post方法,并通過files參數傳遞文件對象:

files = {'file': open('example.txt', 'rb')}
response = requests.post('https://example.com/upload', files=files)

print(response.text)

這段代碼會上傳名為example.txt的文件到服務器。

處理重定向和超時

在處理網絡請求時,我們可能會遇到重定向和超時問題。requests庫提供了相應的參數來處理這些問題。

處理重定向:

# 默認情況下,requests會自動處理重定向
response = requests.get('http://github.com', allow_redirects=False)

print(response.status_code)  # 輸出: 301 (表示重定向)
print(response.headers['location'])  # 輸出: https://github.com/

如果不需要自動重定向,可以設置allow_redirects=False。

處理超時:

try:
    response = requests.get('https://www.example.com', timeout=5)  # 超時時間為5秒
except requests.exceptions.Timeout:
    print("The request timed out")
else:
    print(response.text)

這段代碼設置了請求的超時時間為5秒,如果超過這個時間沒有響應,則會拋出Timeout異常。

實戰案例:獲取天氣信息

假設我們需要獲取某個城市的天氣信息,可以使用OpenWeatherMap提供的API來實現。以下是具體的步驟:

  • 1注冊一個OpenWeatherMap賬戶并獲取API密鑰。
  • 使用requests庫發送GET請求獲取天氣數據。

下面是完整的代碼示例:

import requests

# API密鑰
api_key = 'your_api_key_here'
city = 'Beijing'

# 構建請求URL
url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}'

# 發送GET請求
response = requests.get(url)

# 檢查響應狀態碼
if response.status_code == 200:
    data = response.json()
    temperature = data['main']['temp']
    description = data['weather'][0]['description']
    print(f"Temperature in {city}: {temperature} K")
    print(f"Weather description: {description}")
else:
    print("Failed to get weather data")

在這段代碼中,我們使用了requests.get方法發送GET請求,并通過response.json()方法解析返回的JSON數據。然后,我們提取了溫度和天氣描述信息并打印出來。

總結

本文介紹了如何使用requests庫執行各種類型的HTTP請求,包括發送GET/POST請求、處理JSON數據、設置自定義Header、發送帶認證信息的請求、上傳文件、處理重定向和超時等問題。通過實戰案例展示了如何利用requests獲取天氣信息,希望這些知識能夠幫助你在實際開發過程中更加高效地處理HTTP請求。

責任編輯:趙寧寧 來源: 小白PythonAI編程
相關推薦

2024-04-28 10:00:24

Python數據可視化庫圖像處理庫

2023-06-27 15:50:23

Python圖像處理

2022-02-09 14:50:26

病毒安全策略網絡攻擊

2024-02-01 12:53:00

PandasPython數據

2023-10-07 11:36:15

2012-11-23 10:30:28

Responsive響應式Web

2024-01-30 00:36:41

Python機器學習

2024-10-15 10:40:09

2024-02-20 14:25:39

Python數據分析

2019-09-25 09:20:33

機器學習Python數據科學

2017-03-10 10:16:37

PythonRequests庫

2024-09-14 09:26:17

Python網絡編程

2024-10-07 11:02:08

requests編程PythonAI

2023-09-12 06:55:27

2024-12-03 14:33:42

Python遞歸編程

2023-02-14 08:10:14

Python人工智能XAI

2025-02-20 10:13:54

2022-04-24 10:12:25

Python軟件包代碼

2024-05-28 14:36:00

Python開發

2024-07-18 15:08:27

點贊
收藏

51CTO技術棧公眾號

色婷婷综合久久久久| 日韩电影在线看| 一区二区三区在线高清| 热re99久久精品国产99热| 国内自拍欧美| 欧美美女直播网站| 国产宾馆自拍| av激情综合网| 美日韩精品免费| 国产成人1区| 日韩中文av在线| 国产精品一品| 在线观看视频欧美| 国产夫妻在线视频| 91视频xxxx| 性欧美大战久久久久久久免费观看| 欧美理论电影大全| 欧美日本啪啪无遮挡网站| 欧美日韩国产观看视频| 欧洲一区二区三区在线| 日本福利小视频| 日本一区二区三区高清不卡| 国产a级片免费看| 亚洲影院在线| 国产v亚洲v天堂无码| 成人女性视频| 国产精品国产自产拍高清av水多| 玖玖玖视频精品| 国产一区二区成人| 手机在线观看av网站| 精品盗摄一区二区三区| 国产美女av在线| 777午夜精品视频在线播放| 在线三级av| 一区二区免费在线| 国产精品粉嫩av| 亚洲欧洲精品成人久久奇米网| 内射国产内射夫妻免费频道| 韩国成人精品a∨在线观看| 日韩欧美第二区在线观看| 亚洲一区二区三区高清| 久久久久久久久久久久久久一区 | 欧美精品第1页| 视频三区在线观看| 欧美视频一二三| 欧美色18zzzzxxxxx| 色香蕉久久蜜桃| 在线看免费av| 精品欧美黑人一区二区三区| 羞羞污视频在线观看| 欧美乱熟臀69xxxxxx| 黑人玩欧美人三根一起进| 亚洲社区在线观看| 一本一道久久a久久| 奇米4444一区二区三区| 99热在线成人| 韩国成人一区| 激情六月婷婷久久| 亚洲熟女乱色一区二区三区| 亚洲色图欧美激情| 巨骚激情综合| 日韩精品中文字幕一区二区三区| 国产污视频在线播放| www高清在线视频日韩欧美| 日韩一区二区三区精品| 国产成人拍精品视频午夜网站| 五月激情久久久| 日韩一区免费观看| 成人性生交大片免费看视频在线| 美女网站色免费| 欧美性xxxxhd| 亚洲欧美se| 日本欧美国产在线| 日韩午夜av| 成人免费播放器| 一级日本不卡的影视| 超碰人人在线| 久久影院在线观看| 欧美/亚洲一区| 欧美又粗又长又爽做受| 亚洲午夜激情av| 青草在线视频| 韩国一区二区电影| 国产精品亚洲综合久久| 国产又大又硬又粗| 欧美日韩一区在线观看| 涩涩涩久久久成人精品| 9999精品| 日韩美女激情视频| 鲁大师成人一区二区三区| av免费观看大全| 亚洲成av人**亚洲成av**| av资源一区| 国产成人精品视频在线| 美女脱光内衣内裤视频久久网站| 成人18网址在线观看| 欧美一区二区三区思思人| 日韩亚洲精品在线观看| 激情欧美一区二区三区中文字幕| 不卡的电视剧免费网站有什么| 黄动漫网站在线观看| 亚洲欧美日韩天堂| 中文在线日韩| 超碰影院在线观看| 3d动漫精品啪啪1区2区免费 | 丝袜美腿av在线| 久久视频在线免费观看| 午夜欧美精品久久久久久久| 少妇性饥渴无码a区免费| 91精品国产一区二区三区蜜臀| 久久久精品国产**网站| 色婷婷av一区二区三区久久| 偷拍欧美精品| 日批视频在线免费看| 91精品午夜视频| 伊人久久大香线蕉av不卡| 亚洲精品在线观看免费| 亚洲最大成人网4388xx| 91超碰碰碰碰久久久久久综合| 动漫美女被爆操久久久| 成人免费在线播放视频| 亚洲天堂一区二区| 国产综合精品一区二区三区| 亚洲精品日韩综合观看成人91| 99九九久久| 亚洲国产日韩综合一区| 日韩欧美中文字幕在线播放| 日韩在线观看中文字幕| 青草全福视在线| 日韩一区二区三区视频在线观看| 日本一本不卡| 男女视频在线看| 一区二区三区动漫| 日韩1区2区日韩1区2区| 大地资源中文在线观看免费版| 日韩免费不卡av| 国产精品午夜在线| 少妇精品在线| 男女曰b免费视频| 亚洲天堂男人天堂| 国产精品一区免费在线观看| 日韩精品分区| 精品日本一区二区三区| 日本高清成人免费播放| 成人羞羞网站| 日本高清好狼色视频| 91爱爱小视频k| 国产精品久久久久久久午夜片| 日韩免费大片| 欧美日韩一道本| 最近更新的2019中文字幕| 国产精品888| 日韩成人一区| 日韩中文字幕三区| 久久精品精品电影网| 97久久超碰精品国产| 成人午夜一级| 色综合久久久久无码专区| 久久综合伊人77777蜜臀| 99久久久久免费精品国产| 亚洲久草在线| 黑森林精品导航| 91精品国产乱码久久久久久久久| 国产精品三级av在线播放| 国产精品高潮呻吟久久久久| 羞羞在线视频| 国产精品日韩电影| 精品久久久在线观看| 午夜久久黄色| 午夜在线免费观看视频| 欧美一区国产一区| 日韩精品在线免费观看视频| 成人污视频在线观看| 伊人久久噜噜噜躁狠狠躁| jizzjizzji欧美| 国产精品美女av| 在线亚洲一区二区| 青青草国产精品97视觉盛宴| 春暖花开亚洲一区二区三区| 任你操这里只有精品| 国产精品久久久久久久9999| 日韩欧美精品网站| 日本伊人午夜精品| **日韩最新| 亚洲美女欧洲| 天堂社区 天堂综合网 天堂资源最新版| 国产丝袜一区视频在线观看| 久久夜色精品国产欧美乱极品| 国产麻豆精品久久| jizz在线免费观看| 97中文字幕在线| 日产精品99久久久久久| 欧美男同性恋视频网站| 丁香网亚洲国际| 久久国产电影| 国模私拍一区二区国模曼安| 男生操女生视频网站| 久久艹中文字幕| 九九久久综合网站| 欧美日韩aaa|