python之requests庫使用

request庫

雖然Python的標準庫中urllib模塊已經包含了平常使用的大多數功能哨鸭,但是它的api使用起來讓人感覺不太好家制,而request宣傳是“HTTP for humans”估蹄,說明使用更簡潔方便皇忿。

安裝和文檔地址

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

pip install requests

發(fā)送get請求

1.最簡單的發(fā)送get請求就是通過requests.get來調用:

response = requests.get("http://www.baidu.com/")

2翘魄。添加headers和查詢參數:

如果想添加headers呢铆,可以傳入headers參數來增加請求頭中的headers信息。如果要將參數放在URL中傳遞罢防,可以利用params參數艘虎。相關示例代碼如下:

import requests

kw = {'wd':'中國'}

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

# params 接收一個字典或者字符串的查詢參數,字典類型自動轉換為url編碼咒吐,不需要urlencode()

response = requests.get("http://www.baidu.com/s", params = kw, headers = headers)

# 查看響應內容野建,response.text 返回的是Unicode格式的數據

print(response.text)

# 查看響應內容,response.content返回的字節(jié)流數據

print(response.content)

# 查看完整url地址

print(response.url)

# 查看響應頭部字符編碼

print(response.encoding)

# 查看響應碼

print(response.status_code)

發(fā)送POST請求

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

response = requests.post("http://www.baidu.com/",data=data)

2.傳入data數據:

這時候就不要再使用urlencode進行編碼了恬叹,直接傳入一個字典進去就可以了候生。比如請求拉勾網的數據的代碼:

import requests

url = "https://www.lagou.com/jobs/positionAjax.json?city=%E6%B7%B1%E5%9C%B3&needAddtionalResult=false&isSchoolJob=0"

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',

'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput='

}

data = {

'first': 'true',

'pn': 1,

'kd': 'python'

}

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

# 如果是json數據,直接可以調用json方法

print(resp.json())

使用代理

使用request添加代理也非常簡單绽昼,只要在請求的方法中(比如get或者post)傳遞proxies參數就可以了唯鸭。示例代碼如下:

import requests

url = "http://httpbin.org/get"

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',

}

proxy = {

'http': '171.14.209.180:27829'

}

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

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

fp.write(resp.text)

cookie

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

session

之前使用urllib庫硅确,是可以使用opener發(fā)送多個請求目溉,多個請求之間是可以共享cookie。那么如果使用requests菱农,也要達到共享cookie的目的缭付,那么可以使用requests庫給我們提供session對象。注意循未,這里的session不是微博卡法中的那個session陷猫,這個地方只是一個會話的對象而已。還是以登錄人人網為例只厘,使用requests來實現烙丛。示例代碼如下:

import requests

url = "http://www.renren.com/PLogin.do"

data = {"email":"111111111@qq.com",'password':"pythonspider"}

headers = {

'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"

}

# 登錄

session = requests.session()

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

# 訪問個人中心

resp = session.get('http://www.renren.com/880151247/profile')

print(resp.text)

處理不信任的SSL證書:

對于那些已經被信任的SSL整數的網站舅巷,比如百度網羔味,那么使用requests直接就可以正常的返回響應。示例代碼如下:

resp = requests.get('http://www.12306.cn/mormhweb/',verify=False)

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

今天你學會了嗎钠右?

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末赋元,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子飒房,更是在濱河造成了極大的恐慌搁凸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狠毯,死亡現場離奇詭異护糖,居然都是意外死亡,警方通過查閱死者的電腦和手機嚼松,發(fā)現死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門嫡良,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锰扶,“玉大人,你說我怎么就攤上這事寝受】琅#” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵很澄,是天一觀的道長京闰。 經常有香客問我,道長甩苛,這世上最難降的妖魔是什么蹂楣? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮讯蒲,結果婚禮上捐迫,老公的妹妹穿的比我還像新娘。我一直安慰自己爱葵,他們只是感情好施戴,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萌丈,像睡著了一般赞哗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辆雾,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天肪笋,我揣著相機與錄音,去河邊找鬼度迂。 笑死藤乙,一個胖子當著我的面吹牛,可吹牛的內容都是我干的惭墓。 我是一名探鬼主播坛梁,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腊凶!你這毒婦竟也來了划咐?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤钧萍,失蹤者是張志新(化名)和其女友劉穎褐缠,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體风瘦,經...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡队魏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了万搔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胡桨。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡俐载,死狀恐怖,靈堂內的尸體忽然破棺而出登失,到底是詐尸還是另有隱情遏佣,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布揽浙,位于F島的核電站状婶,受9級特大地震影響,放射性物質發(fā)生泄漏馅巷。R本人自食惡果不足惜膛虫,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钓猬。 院中可真熱鬧稍刀,春花似錦、人聲如沸敞曹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澳迫。三九已至局齿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橄登,已是汗流浹背抓歼。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拢锹,地道東北人谣妻。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像卒稳,于是被迫代替她去往敵國和親蹋半。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內容