python網路請求requests庫

2022-09-21 21:24:14 字數 2802 閱讀 1847

雖然python的標準庫中 urllib模組已經包含了平常我們使用的大多數功能,但是它的 api 使用起來讓人感覺不太好,而 requests宣傳是 「http for humans」,說明使用更簡潔方便。

利用pip可以非常方便的安裝:

pip install requests
中文文件:

最簡單的傳送get請求就是通過requests.get來呼叫:

response = requests.get("")

新增headers和查詢引數:

如果想新增 headers,可以傳入headers引數來增加請求頭中的headers資訊。如果要將引數放在url中傳遞,可以利用 params 引數。相關示例**如下:

import requests

kw =

# params 接收乙個字典或者字串的查詢引數,字典型別自動轉換為url編碼,不需要urlencode()

response = requests.get("s", params = kw, headers = headers)

# 檢視響應內容,response.text 返回的是unicode格式的資料

print(response.text)

# 檢視響應內容,response.content返回的位元組流資料

print(response.content)

# 檢視完整url位址

print(response.url)

# 檢視響應頭部字元編碼

print(response.encoding)

# 檢視響應碼

print(response.status_code)

最基本的post請求可以使用post方法:

response = requests.post("",data=data)

傳入data資料:

這時候就不要再使用urlencode進行編碼了,直接傳入乙個字典進去就可以了。比如請求拉勾網的資料的**:

import requests

url = ""

headers =

data =

resp = requests.post(url,headers=headers,data=data)

# 如果是json資料,直接可以呼叫json方法

print(resp.json())

使用requests新增**也非常簡單,只要在請求的方法中(比如get或者post)傳遞proxies引數就可以了。示例**如下:

import requests

url = ""

headers =

proxy =

resp = requests.get(url,headers=headers,proxies=proxy)

with open('xx.html','w',encoding='utf-8') as fp:

fp.write(resp.text)

如果在乙個響應中包含了cookie,那麼可以利用cookies屬性拿到這個返回的cookie值:

import requests

url = ""

data =

resp = requests.get('')

print(resp.cookies)

print(resp.cookies.get_dict())

之前使用urllib庫,是可以使用opener傳送多個請求,多個請求之間是可以共享cookie的。那麼如果使用requests,也要達到共享cookie的目的,那麼可以使用requests庫給我們提供的session物件。注意,這裡的session不是web開發中的那個session,這個地方只是乙個會話的物件而已。還是以登入人人網為例,使用requests來實現。示例**如下:

import requests

url = ""

data =

headers =

# 登入

session = requests.session()

session.post(url,data=data,headers=headers)

# 訪問大鵬個人中心

resp = session.get('')

print(resp.text)

對於那些已經被信任的ssl整數的**,比如,那麼使用requests直接就可以正常的返回響應。示例**如下:

resp = requests.get('',verify=false)

print(resp.content.decode('utf-8'))

Python爬蟲 模擬瀏覽器訪問 Requests

有時候爬蟲需要加入請求頭來偽裝成瀏覽器,以便更好的抓取資料.開啟瀏覽器chrome找到user agent進行複製 headers headers get方法新增請求頭 print res.text 執行結果 requests庫不僅有get 方法,還有post 等方法.post 方法用於提交表單來爬...

python網路請求 python之網路請求

get 請求 1 有請求引數的型別 鍵值對形式表示引數 url data 引數 res requests.get url,data text 轉成str型別 print res 2 有請求頭 鍵值對形式表示請求頭 url header res requests.get url,headers hea...

Python爬蟲 網路請求 urllib

簡單的請求from urllib.request import urlopen 發起網路請求 response urlopen assert response.code 200print 請求成功 儲存請求的網頁 file變數接受open 函式返回的物件的 enter 返回結果 with open ...