中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

模仿網(wǎng)站怎么防止侵權(quán)電商關(guān)鍵詞一般用哪些工具

模仿網(wǎng)站怎么防止侵權(quán),電商關(guān)鍵詞一般用哪些工具,查建設(shè)公司人員是那個(gè)網(wǎng)站,從零開始學(xué)網(wǎng)站建設(shè)標(biāo)題詳情作者簡介愚公搬代碼頭銜華為云特約編輯,華為云云享專家,華為開發(fā)者專家,華為產(chǎn)品云測專家,CSDN博客專家,CSDN商業(yè)化專家,阿里云專家博主,阿里云簽約作者,騰訊云優(yōu)秀博主&…
標(biāo)題詳情
作者簡介愚公搬代碼
頭銜華為云特約編輯,華為云云享專家,華為開發(fā)者專家,華為產(chǎn)品云測專家,CSDN博客專家,CSDN商業(yè)化專家,阿里云專家博主,阿里云簽約作者,騰訊云優(yōu)秀博主,騰訊云內(nèi)容共創(chuàng)官,掘金優(yōu)秀博主,亞馬遜技領(lǐng)云博主,51CTO博客專家等。
近期榮譽(yù)2022年度博客之星TOP2,2023年度博客之星TOP2,2022年華為云十佳博主,2023年華為云十佳博主,2024年華為云十佳博主等。
博客內(nèi)容.NET、Java、Python、Go、Node、前端、IOS、Android、鴻蒙、Linux、物聯(lián)網(wǎng)、網(wǎng)絡(luò)安全、大數(shù)據(jù)、人工智能、U3D游戲、小程序等相關(guān)領(lǐng)域知識。
歡迎👍點(diǎn)贊、?評論、?收藏

文章目錄

  • 🚀前言
  • 🚀一、請求模塊urllib3
    • 🔎1. urllib3 簡介
    • 🔎2. 安裝 urllib3
    • 🔎3. 發(fā)送網(wǎng)絡(luò)請求
      • 🦋3.1 GET 請求
      • 🦋3.2 POST 請求
      • 🦋3.3 請求重試
    • 🔎4. 處理響應(yīng)內(nèi)容
      • 🦋4.1 獲取響應(yīng)頭
      • 🦋4.2 處理 JSON 響應(yīng)
      • 🦋4.3 處理二進(jìn)制數(shù)據(jù)(如圖片)
    • 🔎5.復(fù)雜請求的發(fā)送
      • 🦋5.1 設(shè)置請求頭
      • 🦋5.2 設(shè)置超時(shí)
      • 🦋5.3 設(shè)置代理
    • 🔎6.上傳文件


🚀前言

在現(xiàn)代編程中,網(wǎng)絡(luò)請求是一個(gè)不可或缺的環(huán)節(jié),無論是數(shù)據(jù)抓取、API調(diào)用還是后端服務(wù)的交互,都會(huì)涉及到網(wǎng)絡(luò)通訊。而在眾多網(wǎng)絡(luò)請求庫中,urllib3因其強(qiáng)大的功能和易用性,成為了許多開發(fā)者的首選。它不僅提供了對HTTP協(xié)議的全面支持,還具備連接池、重試機(jī)制和SSL/TLS驗(yàn)證等多種實(shí)用特性。

在本文中,我們將深入探討urllib3模塊的基本用法,幫助你更好地理解如何利用這個(gè)庫進(jìn)行高效的網(wǎng)絡(luò)請求。不論你是初學(xué)者還是有經(jīng)驗(yàn)的開發(fā)者,掌握urllib3都將為你的項(xiàng)目帶來極大的便利。

🚀一、請求模塊urllib3

🔎1. urllib3 簡介

  • 定義:urllib3 是一個(gè)功能強(qiáng)大、結(jié)構(gòu)清晰的 Python HTTP 客戶端庫,被許多原生 Python 系統(tǒng)采用。
  • 核心特性:
    • 線程安全
    • 連接池管理
    • 客戶端 SSL/TLS 驗(yàn)證
    • 多部分編碼文件上傳
    • 請求重試與 HTTP 重定向處理
    • 支持 gzip/deflate 編碼
    • 支持 HTTP/SOCKS 代理
    • 100% 測試覆蓋率

🔎2. 安裝 urllib3

  • 通過 pip 安裝(非 Anaconda 環(huán)境):
    pip install urllib3
    

🔎3. 發(fā)送網(wǎng)絡(luò)請求

🦋3.1 GET 請求

  • 步驟:
    1. 創(chuàng)建 PoolManager 對象管理連接池。
    2. 調(diào)用 request() 方法發(fā)送請求。
  • 語法:
    request(method, url, fields=None, headers=None, urlopen_kw)
    
    • method: 請求方法(如 GET、POST)。
    • url: 目標(biāo) URL。
    • fields: 請求參數(shù)(字典形式)。
    • headers: 請求頭(字典形式)。

示例 1:基礎(chǔ) GET 請求

import urllib3    # 導(dǎo)入urllib3模塊
url = "http://httpbin.org/get"
http = urllib3.PoolManager()   # 創(chuàng)建連接池管理對象
r = http.request('GET',url)    # 發(fā)送GET請求
print(r.status)                # 打印請求狀態(tài)碼

在這里插入圖片描述

示例 2:多服務(wù)器請求

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
jingdong_url = 'https://www.jd.com/'     # 京東url地址
python_url = 'https://www.python.org/'   # Python url地址
baidu_url = 'https://www.baidu.com/'     # 百度url地址
http = urllib3.PoolManager()             # 創(chuàng)建連接池管理對象
r1 = http.request('GET',jingdong_url)    # 向京東地址發(fā)送GET請求
r2 = http.request('GET',python_url)      # 向python地址發(fā)送GET請求
r3 = http.request('GET',baidu_url)       # 向百度地址發(fā)送GET請求
print('京東請求狀態(tài)碼:',r1.status)
print('python請求狀態(tài)碼:',r2.status)
print('百度請求狀態(tài)碼:',r3.status)

在這里插入圖片描述

🦋3.2 POST 請求

  • 關(guān)鍵:設(shè)置 method='POST' 并通過 fields 傳遞表單數(shù)據(jù)。

示例 3:發(fā)送 POST 請求

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
url = 'https://www.httpbin.org/post'    # post請求測試地址
params = {'name':'Jack','country':'中國','age':30}  # 定義字典類型的請求參數(shù)
http = urllib3.PoolManager()             # 創(chuàng)建連接池管理對象
r = http.request('POST',url,fields=params)    # 發(fā)送POST請求
print('返回結(jié)果:',r.data.decode('utf-8'))

在這里插入圖片描述

🦋3.3 請求重試

  • 參數(shù):retries 控制重試次數(shù)(默認(rèn) 3 次,False 禁用重試)。

示例 4:設(shè)置重試策略

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
url = 'https://www.httpbin.org/get'    # get請求測試地址
http = urllib3.PoolManager()             # 創(chuàng)建連接池管理對象
r = http.request('GET',url)              # 發(fā)送GET請求,默認(rèn)重試請求
r1 = http.request('GET',url,retries=5)   # 發(fā)送GET請求,設(shè)置5次重試請求
r2 = http.request('GET',url,retries=False) # 發(fā)送GET請求,關(guān)閉重試請求
print('默認(rèn)重試請求次數(shù):',r.retries.total)
print('設(shè)置重試請求次數(shù):',r1.retries.total)
print('關(guān)閉重試請求次數(shù):',r2.retries.total)

在這里插入圖片描述

🔎4. 處理響應(yīng)內(nèi)容

🦋4.1 獲取響應(yīng)頭

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
url = 'https://www.httpbin.org/get'    # get請求測試地址
http = urllib3.PoolManager()             # 創(chuàng)建連接池管理對象
r = http.request('GET',url)              # 發(fā)送GET請求,默認(rèn)重試請求
response_header = r.info()               # 獲取響應(yīng)頭
for key in response_header.keys():      # 循環(huán)遍歷打印響應(yīng)頭信息print(key,':',response_header.get(key))

在這里插入圖片描述

🦋4.2 處理 JSON 響應(yīng)

import urllib3    # 導(dǎo)入urllib3模塊
import json       # 導(dǎo)入json模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
url = 'https://www.httpbin.org/post'    # post請求測試地址
params = {'name':'Jack','country':'中國','age':30}  # 定義字典類型的請求參數(shù)
http = urllib3.PoolManager()             # 創(chuàng)建連接池管理對象
r = http.request('POST',url,fields=params)    # 發(fā)送POST請求
j = json.loads(r.data.decode('unicode_escape'))  # 將響應(yīng)數(shù)據(jù)轉(zhuǎn)換為字典類型
print('數(shù)據(jù)類型:',type(j))
print('獲取form對應(yīng)的數(shù)據(jù):',j.get('form'))
print('獲取country對應(yīng)的數(shù)據(jù):',j.get('form').get('country'))

在這里插入圖片描述

🦋4.3 處理二進(jìn)制數(shù)據(jù)(如圖片)

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
url = 'https://search-operate.cdn.bcebos.com/4466f881476a1ee804b4a32aee790675.gif'  # 圖片請求地址
http = urllib3.PoolManager()             # 創(chuàng)建連接池管理對象
r = http.request('GET',url)              # 發(fā)送網(wǎng)絡(luò)請求
print(r.data)                            # 打印二進(jìn)制數(shù)據(jù)
f = open('python.png','wb+')             # 創(chuàng)建open對象
f.write(r.data)                          # 寫入數(shù)據(jù)
f.close()                                # 關(guān)閉

在這里插入圖片描述

🔎5.復(fù)雜請求的發(fā)送

🦋5.1 設(shè)置請求頭

  • 目的:模擬瀏覽器請求,避免被服務(wù)器識別為爬蟲。
  • 實(shí)現(xiàn)步驟:
    1. 獲取請求頭信息:
      • 在瀏覽器(如 Firefox)中按 F12 打開開發(fā)者工具。
      • 訪問目標(biāo)網(wǎng)頁(如 https://www.baidu.com)。
      • 在“網(wǎng)絡(luò)”選項(xiàng)卡中選擇一個(gè)請求,復(fù)制其 User-Agent 值。
    2. 設(shè)置請求頭:將 User-Agent 作為字典鍵,瀏覽器信息作為值。

在這里插入圖片描述

示例:設(shè)置請求頭

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
url = 'https://www.httpbin.org/get'    # get請求測試地址
# 定義火狐瀏覽器請求頭信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'}
http = urllib3.PoolManager()                   # 創(chuàng)建連接池管理對象
r = http.request('GET',url,headers=headers)    # 發(fā)送GET請求
print(r.data.decode('utf-8'))                  # 打印返回內(nèi)容

在這里插入圖片描述

🦋5.2 設(shè)置超時(shí)

  • 兩種設(shè)置方式:
    1. 全局設(shè)置:在 PoolManager 對象初始化時(shí)指定 timeout
    2. 單次請求設(shè)置:在 request() 方法中直接傳遞 timeout。
  • 精確控制:使用 Timeout 類分別設(shè)置連接超時(shí)和讀取超時(shí)。

示例:基礎(chǔ)超時(shí)設(shè)置

import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()               # 關(guān)閉ssl警告
baidu_url = 'https://www.baidu.com/'    # 百度超時(shí)請求測試地址
python_url = 'https://www.python.org/'  # Python超時(shí)請求測試地址
http = urllib3.PoolManager()                   # 創(chuàng)建連接池管理對象
try:r = http.request('GET',baidu_url,timeout=0.01)# 發(fā)送GET請求,并設(shè)置超時(shí)時(shí)間為0.01秒
except  Exception as error:print('百度超時(shí):',error)
http2 = urllib3.PoolManager(timeout=0.1)  # 創(chuàng)建連接池管理對象,并設(shè)置超時(shí)時(shí)間為0.1秒
try:r = http2.request('GET', python_url)  # 發(fā)送GET請求
except  Exception as error:print('Python超時(shí):',error)

在這里插入圖片描述

示例:精確超時(shí)控制

from urllib3 import Timeout
import urllib3    # 導(dǎo)入urllib3模塊
urllib3.disable_warnings()
# 設(shè)置連接超時(shí) 0.5秒,讀取超時(shí) 0.1秒
timeout = Timeout(connect=0.5, read=0.1)# 方式1:全局設(shè)置
http = urllib3.PoolManager(timeout=timeout)
http.request("GET", "https://www.python.org")# 方式2:單次請求設(shè)置
http = urllib3.PoolManager()
http.request("GET", "https://www.python.org", timeout=timeout)

🦋5.3 設(shè)置代理

  • 核心類:ProxyManager,需指定代理地址和請求頭。
  • 作用:隱藏真實(shí) IP 或訪問受限制資源。

示例:通過代理發(fā)送請求

import urllib3    # 導(dǎo)入urllib3模塊
url = "http://httpbin.org/ip"            # 代理IP請求測試地址
# 定義火狐瀏覽器請求頭信息
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'}
# 創(chuàng)建代理管理對象
proxy = urllib3.ProxyManager('http://120.27.110.143:80',headers = headers)
r = proxy.request('get',url,timeout=2.0)  # 發(fā)送請求
print(r.data.decode())                    # 打印返回結(jié)果

輸出:

{"origin": "120.27.110.143"
}

🔎6.上傳文件

  • 兩種方式:
    1. 文本文件:通過 fields 參數(shù)以元組形式傳遞。
    2. 二進(jìn)制文件:通過 body 參數(shù)直接傳遞數(shù)據(jù),并指定 Content-Type。

示例:上傳文本文件

import urllib3    # 導(dǎo)入urllib3模塊
import json       # 導(dǎo)入json模塊
with open('test.txt') as f:    # 打開文本文件data = f.read()               # 讀取文件
http = urllib3.PoolManager()    # 創(chuàng)建連接池管理對象
# 發(fā)送網(wǎng)絡(luò)請求
r = http.request( 'POST','http://httpbin.org/post',fields={'filefield': ('example.txt', data),})
files = json.loads(r.data.decode('utf-8'))['files']  # 獲取上傳文件內(nèi)容
print(files)                                         # 打印上傳文本信息

輸出:

{"filefield": "在學(xué)習(xí)中尋找快樂!"
}

示例:上傳圖片文件

import urllib3    # 導(dǎo)入urllib3模塊
with open('python.jpg','rb') as f:  # 打開圖片文件data = f.read()                    # 讀取文件
http = urllib3.PoolManager()    # 創(chuàng)建連接池管理對象
# 發(fā)送請求
r = http.request('POST','http://httpbin.org/post',body = data,headers={'Content-Type':'image/jpeg'})
print(r.data.decode())          # 打印返回結(jié)果

在這里插入圖片描述

http://www.risenshineclean.com/news/61300.html

相關(guān)文章:

  • icp備案網(wǎng)站要先建好嗎微信社群營銷
  • 北京網(wǎng)站建設(shè)價(jià)格天湛江今日頭條新聞
  • 鄭州網(wǎng)站的優(yōu)化廣州公關(guān)公司
  • 網(wǎng)站建設(shè)外包排名游戲推廣在哪里接活
  • app網(wǎng)站制作要多少錢排名nba
  • 做電影網(wǎng)站的工具抖音關(guān)鍵詞搜索排名
  • 做網(wǎng)站最主要搜索引擎推廣的費(fèi)用
  • 政府網(wǎng)站建設(shè)辦法中國工商業(yè)聯(lián)合會(huì)
  • 如何通過建設(shè)網(wǎng)站賺錢天津疫情最新情況
  • 什么網(wǎng)站可以做相冊城關(guān)網(wǎng)站seo
  • 25轉(zhuǎn)行做網(wǎng)站運(yùn)營優(yōu)化搜狗排名
  • 東莞做網(wǎng)站制作珠海網(wǎng)站建設(shè)
  • 綿陽做網(wǎng)站的有哪些百度指數(shù)支持?jǐn)?shù)據(jù)下載嗎
  • 高明網(wǎng)站建設(shè)最近一周新聞熱點(diǎn)回顧
  • 湖北網(wǎng)站開發(fā)網(wǎng)站多少錢
  • 門戶網(wǎng)站html模板參考網(wǎng)是合法網(wǎng)站嗎?
  • wordpress批量修改圖片標(biāo)題seo中文意思是
  • 網(wǎng)站都有什么費(fèi)用千鋒教育培訓(xùn)怎么樣
  • wordpress的文章分類班級優(yōu)化大師下載
  • 網(wǎng)站域名包括菏澤資深seo報(bào)價(jià)
  • 軟件界面設(shè)計(jì)工具下載刷seo快速排名
  • wordpress 插件太多seo長尾快速排名
  • 做畫冊好的國外網(wǎng)站推薦如何關(guān)閉2345網(wǎng)址導(dǎo)航
  • 現(xiàn)在的網(wǎng)站設(shè)計(jì)前端seo主要優(yōu)化哪些
  • 圖書館網(wǎng)站建設(shè)優(yōu)化合作平臺
  • 工業(yè)皮帶怎么做免費(fèi)的網(wǎng)站情感式軟文廣告
  • 天津房地產(chǎn)集團(tuán)網(wǎng)站建設(shè)地推接單正規(guī)平臺
  • 品牌網(wǎng)站建站公司如何推廣我的網(wǎng)站
  • 做poster的網(wǎng)站提升seo排名的方法
  • 做網(wǎng)站流量錢誰給深圳網(wǎng)絡(luò)優(yōu)化公司