国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python爬蟲入門教程--優雅的HTTP庫requests(二)

2020-02-16 01:34:31
字體:
來源:轉載
供稿:網友

前言

urllib、urllib2、urllib3、httplib、httplib2 都是和 HTTP 相關的 Python 模塊,看名字就覺得很反人類,更糟糕的是這些模塊在 Python2 與 Python3 中有很大的差異,如果業務代碼要同時兼容 2 和 3,寫起來會讓人崩潰。

好在,還有一個非常驚艷的 HTTP 庫叫 requests,它是 GitHUb 關注數最多的 Python 項目之一,requests 的作者是 Kenneth Reitz 大神。

requests 實現了 HTTP 協議中絕大部分功能,它提供的功能包括 Keep-Alive、連接池、Cookie持久化、內容自動解壓、HTTP代理、SSL認證、連接超時、Session等很多特性,最重要的是它同時兼容 python2 和 python3。requests 的安裝可以直接使用 pip 方法:pip install requests

發送請求

>>> import requests# GET 請求>>> response = requests.get(https://foofish.net)

響應內容

請求返回的值是一個Response 對象,Response 對象是對 HTTP 協議中服務端返回給瀏覽器的響應數據的封裝,響應的中的主要元素包括:狀態碼、原因短語、響應首部、響應體等等,這些屬性都封裝在Response 對象中。

# 狀態碼>>> response.status_code200# 原因短語>>> response.reason'OK'# 響應首部>>> for name,value in response.headers.items():...  print("%s:%s" % (name, value))...Content-Encoding:gzipServer:nginx/1.10.2Date:Thu, 06 Apr 2017 16:28:01 GMT# 響應內容>>> response.content'<html><body>此處省略一萬字...</body></html>

requests 除了支持 GET 請求外,還支持 HTTP 規范中的其它所有方法,包括 POST、PUT、DELTET、HEADT、OPTIONS方法。

>>> r = requests.post('http://httpbin.org/post', data = {'key':'value'})>>> 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')

查詢參數

很多URL都帶有很長一串參數,我們稱這些參數為URL的查詢參數,用"?"附加在URL鏈接后面,多個參數之間用"&"隔開,比如:http://fav.foofish.net/?p=4&s=20 ,現在你可以用字典來構建查詢參數:

>>> args = {"p": 4, "s": 20}>>> response = requests.get("http://fav.foofish.net", params = args)>>> response.url'http://fav.foofish.net/?p=4&s=2'

請求首部

requests 可以很簡單地指定請求首部字段 Headers,比如有時要指定 User-Agent 偽裝成瀏覽器發送請求,以此來蒙騙服務器。直接傳遞一個字典對象給參數 headers 即可。

>>> r = requests.get(url, headers={'user-agent': 'Mozilla/5.0'})

請求體

requests 可以非常靈活地構建 POST 請求需要的數據,如果服務器要求發送的數據是表單數據,則可以指定關鍵字參數 data,如果要求傳遞 json 格式字符串參數,則可以使用json關鍵字參數,參數的值都可以字典的形式傳過去。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大港区| 巴马| 鸡西市| 保亭| 鹰潭市| 柘城县| 孟连| 高平市| 改则县| 乌鲁木齐县| 高清| 白银市| 阿拉善右旗| 伊春市| 潜山县| 沙雅县| 肃北| 灵山县| 余庆县| 江孜县| 育儿| 黄浦区| 南阳市| 婺源县| 汾西县| 佛坪县| 广汉市| 七台河市| 财经| 泰顺县| 锦屏县| 临安市| 白水县| 巴中市| 历史| 察隅县| 长寿区| 黔西县| 兴化市| 丘北县| 秦皇岛市|