python中requests的常用方法_Python爬虫简介(2)——请求库的常用方法及使用,python,入门,二,requests,常见,和,库中,文官,网...
前言
學習使我快樂,游戲使我傷心。今天rushB,又是白給的一天。
HXDM,讓我們一起學習requests庫的方法和使用,沉浸在代碼的世界里。嗚嗚嗚~~
一、requests庫介紹
首先列出requests庫的官方網站。它在這里:
requests庫中文官網
requests庫的宣言
Requests: HTTP for Humans
(霸氣嗷)
它的官方網站里面有詳細的使用文檔,而且還有一些小例子,不想看羅里吧嗦的博客可以去官方網站學習。
requests庫是基于
urllib
框架編寫的。
二、requests庫常見方法及說明
方法
說明
requests.get()
獲取某個網頁
requests.post()
發送 HTTP POST 請求
requests.put()
提交HTTP PUT 請求
requests.delete()
提交HTTP 刪除請求
requests.head()
獲取HTTP HEAD(頭)信息
requests.options()
提交HTTP OPTINS 請求
三、response對象的屬性及說明
在了解response對象的屬性之前,先看一下什么是response對象。當我們使用瀏覽器時,比如說搜索CSDN,按F12打開開發者工具,在Network中我們可以看到下圖紅圈中的兩種Headers。
request對象就是瀏覽器向服務器發送的請求,而response對象就是服務器對瀏覽器請求的響應。我們看一下下面的代碼。
import requests
r = requests.get('https://www.baidu.com')
所以我們可以把
'www.baidu.com'
看成request請求,而方法
requests.get()
返回的就是response響應,所以我們就得到來response對象
r
。我們來直接打印一下
r
試試。
import requests
r = requests.get('https://www.baidu.com')
print(r)
執行結果:
可以看到結果并不是我們想象的百度網頁的html代碼,而是響應狀態碼,這就是因為
r
在這里是一個response對象,我們需要通過對它屬性的訪問來得到我們想要的信息。
response對象的屬性:
屬性
說明
response.text
HTTP 響應的頁面內容
response.encoding
文本的編碼格式
response.apparent_encoding
從內容分析出的響應內容編碼方式
response.status_code
HTTP 響應狀態
response.content
HTTP 響應頁面內容的二進制格式
我們在來看一下下面的代碼
import requests
r = requests.get('https://www.baidu.com')
r.encoding = 'utf-8'
print(r.text)
執行結果:
我們得到了百度首頁的html代碼
四、requests庫常見方法的使用
1、requests.get()的使用
get方法是requests庫最常用的方法,我們可以通過改變參數來獲取我們想要的HTTP 響應。
比如說我們直接訪問豆瓣網站,看看會有什么
代碼:
import requests
r = requests.get('https://www.douban.com')
r.encoding = 'utf-8'
print(r.text)
執行結果:
哎,怎么回事,啥東西也沒有,代碼沒有寫錯呀!為什么沒有文本呢?
我們來打印一下HTTP 的狀態響應碼。
代碼:
import requests
r = requests.get('https://www.douban.com')
r.encoding = 'utf-8'
print(r.status_code)
執行結果:
可以看到HTTP 的狀態響應碼是
418
,這個狀態碼是什么意思呢?
418
:它的含義是當客戶端給一個茶壺發送泡咖啡的請求時,那就就返回一個錯誤的狀態碼表示:I’m a teapot,即:“我是一個茶壺”。這個HTTP狀態碼在某些網站中用作彩蛋,另外也用于一些
爬蟲警告
。意思就是,我們被警告了,豆瓣告訴我們,“你這個壞爬蟲,不遵守規定,人家就不給你看!哼╭(╯^╰)╮!”。所以我們需要通過正常的途徑訪問豆瓣網,還好
requests.get()
方法允許我們添加一些參數模擬瀏覽器訪問,這下我們可以說,“嘿嘿,跑不掉了吧”。
如何模仿瀏覽器訪問呢?
打開一個網頁,按F12打開開發者模式,在network中,隨便點擊一個name下的項目,
可以看到下面的情況
Request Headers下面的大紅圈里的
User-Agent
就是告訴服務器瀏覽器的信息。我們可以在代碼中怎樣寫:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
} # 模擬瀏覽器訪問
r = requests.get('https://www.douban.com', headers=headers)
r.encoding = 'utf-8'
print(r.text)
print('狀態碼:')
print(r.status_code)
執行結果:
可以看到我們得到了豆瓣的html代碼,狀態碼也是
200
。
requests.get()
方法還有很多有用的參數,比如說可以用
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
來代替
r = requests.get("http://httpbin.org/get?key1=value1&key2=value2")
你可以去
requests庫官網
自行探索,多寫代碼,才能提高。
2、requests.post()方法的使用
requests庫還允許我們以post方式請求HTTP 響應,因為有些網頁并不接受在
URL
后面添加
Vaule
,它可能只接受表單。我們可以這樣寫:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
這樣我們就可以自己定制表單的內容。emmm至于表單是什么,這需要你去學習。
3、put、delete等方法的使用
其他方法的使用自然和上面都是大同小異,學習了關于HTTP 請求方面的知識,自然就知道我們在爬取網頁資源該用哪種方法了。
使用例子:
r = requests.put('http://httpbin.org/put', data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')
4、練手網站
http://httpbin.org
是一個接受request和響應response的網站,平??梢栽谏厦婢毷?。
加油!
總結
以上是生活随笔為你收集整理的python中requests的常用方法_Python爬虫简介(2)——请求库的常用方法及使用,python,入门,二,requests,常见,和,库中,文官,网...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何计算分子描述符_Pyth
- 下一篇: aspx隐藏前台控件div_javasc