最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中網(wǎng)絡(luò)請求的12種方式

 更新時間:2024年07月31日 09:52:31   作者:焱垚鑫淼森~  
今天,我們要用一行簡潔的Python代碼來揭開網(wǎng)絡(luò)請求的神秘面紗,別看這行代碼短小,它背后的魔法可強大了,能幫你輕松獲取網(wǎng)頁數(shù)據(jù)、實現(xiàn)API調(diào)用,甚至更多,無論你是想做數(shù)據(jù)分析、網(wǎng)站爬蟲還是簡單的信息查詢,這12種方式都是你的得力助手,需要的朋友可以參考下

1. 使用requests模塊的基礎(chǔ)請求

import requests; 
response = requests.get('https://api.example.com/data')

這是最基本的網(wǎng)絡(luò)請求,用requests.get()函數(shù)向指定URL發(fā)送GET請求,response里裝的就是響應(yīng)數(shù)據(jù)。

2. GET請求帶參數(shù)

params = {'key': 'value'}; 
response = requests.get('https://example.com/search', params=params)

通過字典params傳遞查詢參數(shù),簡單又高效。

3. POST請求發(fā)送數(shù)據(jù)

data = {'username': 'learner'}; 
response = requests.post('https://example.com/login', data=data)

POST請求常用于提交數(shù)據(jù),比如登錄表單,這里用data字典攜帶你的信息。

4. 設(shè)置請求頭

headers = {'User-Agent': 'MyBot/0.1'}; 
response = requests.get('https://example.com', headers=headers)

模擬瀏覽器或添加特定的請求頭,有時候是訪問某些網(wǎng)站的關(guān)鍵。

5. 處理JSON響應(yīng)

response = requests.get('https://api.example.com/data'); 
print(response.json())

直接用.json()方法解析JSON格式的響應(yīng),方便快捷。

6. 下載文件

with open('image.jpg', 'wb') 
as f: f.write(requests.get('https://example.com/image.jpg', stream=True).content)

流式下載大文件,避免內(nèi)存爆棚,記得以二進制模式打開文件哦。

7. 超時設(shè)置

response = requests.get('https://slow.example.com', timeout=3)

耐心有限,3秒內(nèi)沒響應(yīng)就放棄,避免程序掛起。

8. 使用代理

proxies = {'http': 'http://proxy.example.com:8080', 'https': 'https://proxy.example.com:8080'}; response = requests.get('https://example.com', proxies=proxies)

當你需要通過代理服務(wù)器訪問時,這個技巧很實用。

9. 自動處理重定向

response = requests.get('https://redirect-me.example.com', allow_redirects=False)

默認情況下會自動重定向,加allow_redirects=False可以控制是否跟隨重定向。

10. 發(fā)送認證信息

response = requests.get('https://protected.example.com', auth=('user', 'pass'))

問需要認證的頁面,用戶名密碼一提交,輕松搞定。

11. 會話管理(保持Cookie)

with requests.Session() as s:
    s.get('https://login.example.com')
    response = s.get('https://profile.example.com')

使用Session對象,可以維持登錄狀態(tài),訪問受限資源。

12. 錯誤處理

try:
    response = requests.get('https://never.exists.com')
except requests.exceptions.RequestException as e:
    print(e)

優(yōu)雅地處理請求過程中可能遇到的錯誤,讓你的程序更加健壯。

實戰(zhàn)案例:網(wǎng)頁內(nèi)容抓取

想象一下,你想從一個博客網(wǎng)站上抓取最新的文章標題。假設(shè)這個網(wǎng)站的每篇文章鏈接都在一個類名為'article-title'的HTML元素中。你可以這樣做:

from bs4 import BeautifulSoup; import requests
 
url = 'https://example-blog.com/latest'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
 
titles = [title.text for title in soup.find_all(class_='article-title')]
print(titles)

這段代碼首先發(fā)送GET請求獲取網(wǎng)頁內(nèi)容,然后使用BeautifulSoup解析HTML,最后通過列表推導(dǎo)式提取所有文章標題。這就是一個簡單的網(wǎng)絡(luò)爬蟲雛形。

練習(xí)技巧與方法提示

  • 分步調(diào)試:在復(fù)雜的請求邏輯中,分步執(zhí)行并打印中間結(jié)果,有助于理解流程。

  • **使用requests.Session**:在頻繁請求同一站點時,使用Session可以提高效率,減少握手時間。

  • 錯誤日志:記錄請求過程中的錯誤,有助于排查問題??梢允褂肞ython的logging模塊。

注意事項

  • 遵守Robots協(xié)議(robots.txt):尊重網(wǎng)站規(guī)則,不爬取禁止抓取的內(nèi)容。

  • 請求頻率:合理控制請求間隔,避免對目標網(wǎng)站造成過大壓力,可能導(dǎo)致IP被封禁。

  • 數(shù)據(jù)處理:獲取的數(shù)據(jù)可能需要清洗和格式化,確保數(shù)據(jù)質(zhì)量。

  • 安全性:在處理HTTP請求時,注意SSL證書驗證,防止中間人攻擊。

高級技巧:異步請求

隨著Python的asyncio庫的普及,異步請求成為提高效率的新方式。雖然不是“一行代碼”,但了解其重要性是必要的。

import aiohttp
import asyncio
 
async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()
 
async def main():
    async with aiohttp.ClientSession() as session:
        html = await fetch(session, 'https://example.com')
        print(html)
 
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

這段代碼展示了如何使用aiohttp庫進行異步HTTP請求,大幅提升了并發(fā)請求的能力,適用于大量請求的場景。

以上就是Python中網(wǎng)絡(luò)請求的12種方式的詳細內(nèi)容,更多關(guān)于Python網(wǎng)絡(luò)請求的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python版本管理器之Pyenv-win介紹與安裝方法詳解

    Python版本管理器之Pyenv-win介紹與安裝方法詳解

    pyenv-win是pyenv的Windows版本,是一個Python版本管理工具,使用戶可以輕松在多個版本之間切換,這篇文章主要介紹了Python版本管理器之Pyenv-win介紹與安裝方法的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • Python處理MySQL與SQLite數(shù)據(jù)庫詳解

    Python處理MySQL與SQLite數(shù)據(jù)庫詳解

    在數(shù)據(jù)處理和存儲方面,數(shù)據(jù)庫扮演著至關(guān)重要的角色,Python提供了多種與數(shù)據(jù)庫交互的方式,本文主要介紹了如何對MySQL與SQLite數(shù)據(jù)庫進行增刪改查操作,需要的可以了解下
    2025-02-02
  • python中filter,map,reduce的作用

    python中filter,map,reduce的作用

    這篇文章主要介紹了python中filter,map,reduce的作用,文章首先通過map函數(shù)展開,map主要作用是計算一個序列或者多個序列進行函數(shù)映射之后的值,感興趣的朋友可以參考一下
    2022-06-06
  • python實現(xiàn)一個圍棋小游戲

    python實現(xiàn)一個圍棋小游戲

    今天給大家?guī)硪黄趪宓脑创a分享。下面我們先看看效果。游戲進去默認為九路玩法,當然也可以選擇十三路或是十九路玩法,感興趣的可以了解一下
    2022-11-11
  • Python爬蟲設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問題

    Python爬蟲設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問題

    這篇文章主要介紹了Python爬蟲設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python 中 Shutil 模塊詳情

    Python 中 Shutil 模塊詳情

    這篇文章主要介紹了 Python 中 Shutil 模塊,shutil可以簡單地理解為sh + util,shell工具的意思。shutil模塊是對os模塊的補充,主要針對文件的拷貝、刪除、移動、壓縮和解壓操作。下面來看文章詳細內(nèi)容
    2021-11-11
  • tensorflow之tf.record實現(xiàn)存浮點數(shù)數(shù)組

    tensorflow之tf.record實現(xiàn)存浮點數(shù)數(shù)組

    今天小編就為大家分享一篇tensorflow之tf.record實現(xiàn)存浮點數(shù)數(shù)組,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 在VS?Code中使用Black格式化Python代碼詳細說明

    在VS?Code中使用Black格式化Python代碼詳細說明

    格式化使源代碼更容易被人類閱讀,下面這篇文章主要介紹了在VS?Code中使用Black格式化Python代碼的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-03-03
  • NCCL深度學(xué)習(xí)之初始化及ncclUniqueId的產(chǎn)生源碼解析

    NCCL深度學(xué)習(xí)之初始化及ncclUniqueId的產(chǎn)生源碼解析

    這篇文章主要為大家介紹了NCCL源碼解析之初始化及ncclUniqueId的產(chǎn)生詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 使用Python將PowerPoint轉(zhuǎn)換為Word文檔的示例代碼

    使用Python將PowerPoint轉(zhuǎn)換為Word文檔的示例代碼

    在日常工作中,我們經(jīng)常需要將 PowerPoint 演示文稿內(nèi)容轉(zhuǎn)換為 Word 文檔,本文將介紹如何使用 Free Spire.Presentation for Python 和 Free Spire.PDF for Python,通過 Python 自動完成 PowerPoint 到 Word 的轉(zhuǎn)換,并確保排版盡量保留,需要的朋友可以參考下
    2025-11-11

最新評論

嘉善县| 富裕县| 鱼台县| 平山县| 宿迁市| 卢氏县| 婺源县| 厦门市| 绩溪县| 祁阳县| 巴塘县| 洪雅县| 洛宁县| 汉沽区| 开江县| 获嘉县| 香港 | 朝阳区| 大名县| 道孚县| 建平县| 汉中市| 永善县| 九寨沟县| 平阴县| 南靖县| 涿州市| 临洮县| 绥化市| 丘北县| 临泉县| 吴忠市| 无为县| 长垣县| 隆昌县| 大连市| 安溪县| 从江县| 阜新市| 如皋市| 台前县|