python使用requests庫教程

requests庫

雖然Python的標(biāo)準(zhǔn)庫中 urllib模塊已經(jīng)包含了平常我們使用的大多數(shù)功能榄融,但是它的 API 使用起來讓人感覺不太好缀蹄,而 Requests宣傳是 “HTTP for Humans”灼芭,說明使用更簡潔方便伙判。

安裝和文檔地址:

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

pip install requests

中文文檔:http://docs.python-requests.org/zh_CN/latest/index.html

github地址:https://github.com/requests/requests

Pycharm激活碼教程使用更多解釋請見:http://vrg123.com

發(fā)送GET請求:

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

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

添加headers和查詢參數(shù):

如果想添加 headers关噪,可以傳入headers參數(shù)來增加請求頭中的headers信息。如果要將參數(shù)放在url中傳遞泣洞,可以利用 params 參數(shù)。相關(guān)示例代碼如下:

importrequests 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 接收一個字典或者字符串的查詢參數(shù)默色,字典類型自動轉(zhuǎn)換為url編碼球凰,不需要urlencode()response = requests.get("http://www.baidu.com/s", params = kw, headers = headers)# 查看響應(yīng)內(nèi)容,response.text 返回的是Unicode格式的數(shù)據(jù)print(response.text)# 查看響應(yīng)內(nèi)容腿宰,response.content返回的字節(jié)流數(shù)據(jù)print(response.content)# 查看完整url地址print(response.url)# 查看響應(yīng)頭部字符編碼print(response.encoding)# 查看響應(yīng)碼print(response.status_code)

發(fā)送POST請求:

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

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

傳入data數(shù)據(jù):

這時候就不要再使用urlencode進(jìn)行編碼了呕诉,直接傳入一個字典進(jìn)去就可以了。比如請求拉勾網(wǎng)的數(shù)據(jù)的代碼:

importrequests 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數(shù)據(jù)酗失,直接可以調(diào)用json方法print(resp.json())

使用代理:

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

importrequestsurl ="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)withopen('xx.html','w',encoding='utf-8')asfp:? ? fp.write(resp.text)

cookie:

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

importrequestsurl ="http://www.renren.com/PLogin.do"data = {"email":"970138074@qq.com",'password':"pythonspider"}resp = requests.get('http://www.baidu.com/')print(resp.cookies)print(resp.cookies.get_dict())

session:

之前使用urllib庫捶闸,是可以使用opener發(fā)送多個請求,多個請求之間是可以共享cookie的拖刃。那么如果使用requests删壮,也要達(dá)到共享cookie的目的,那么可以使用requests庫給我們提供的session對象兑牡。注意央碟,這里的session不是web開發(fā)中的那個session,這個地方只是一個會話的對象而已均函。還是以登錄人人網(wǎng)為例亿虽,使用requests來實現(xiàn)。示例代碼如下:

importrequestsurl ="http://www.renren.com/PLogin.do"data = {"email":"970138074@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證書:

對于那些已經(jīng)被信任的SSL整數(shù)的網(wǎng)站苞也,比如https://www.baidu.com/洛勉,那么使用requests直接就可以正常的返回響應(yīng)。示例代碼如下:

resp = requests.get('http://www.12306.cn/mormhweb/',verify=False)print(resp.content.decode('utf-8'))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末如迟,一起剝皮案震驚了整個濱河市收毫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殷勘,老刑警劉巖此再,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玲销,居然都是意外死亡输拇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門贤斜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來策吠,“玉大人议慰,你說我怎么就攤上這事∨铮” “怎么了别凹?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長洽糟。 經(jīng)常有香客問我炉菲,道長,這世上最難降的妖魔是什么坤溃? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任拍霜,我火速辦了婚禮,結(jié)果婚禮上薪介,老公的妹妹穿的比我還像新娘祠饺。我一直安慰自己,他們只是感情好汁政,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布道偷。 她就那樣靜靜地躺著,像睡著了一般记劈。 火紅的嫁衣襯著肌膚如雪勺鸦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天目木,我揣著相機與錄音换途,去河邊找鬼。 笑死刽射,一個胖子當(dāng)著我的面吹牛军拟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播誓禁,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼懈息,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了现横?” 一聲冷哼從身側(cè)響起漓拾,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤阁最,失蹤者是張志新(化名)和其女友劉穎戒祠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體速种,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡姜盈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了配阵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馏颂。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡示血,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出救拉,到底是詐尸還是另有隱情难审,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布亿絮,位于F島的核電站告喊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏派昧。R本人自食惡果不足惜黔姜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蒂萎。 院中可真熱鬧秆吵,春花似錦、人聲如沸五慈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泻拦。三九已至烈疚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間聪轿,已是汗流浹背爷肝。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陆错,地道東北人灯抛。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像音瓷,于是被迫代替她去往敵國和親对嚼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • request庫 雖然Python的標(biāo)準(zhǔn)庫中urllib模塊已經(jīng)包含了平常使用的大多數(shù)功能绳慎,但是它的api使用起來...
    嘀嗒運維閱讀 355評論 0 0
  • requests是python實現(xiàn)的最簡單易用的HTTP庫纵竖,建議爬蟲使用requests import reque...
    HaringLi閱讀 601評論 0 0
  • 一、requests簡介 #簡介:使用requests可以模擬瀏覽器的請求杏愤,比起之前用的urllib靡砌,reques...
    二次元BUG閱讀 1,939評論 0 7
  • requests庫 雖然Python的標(biāo)準(zhǔn)庫中 urllib模塊已經(jīng)包含了平常我們使用的大多數(shù)功能,但是它的 AP...
    徐弱西閱讀 154評論 0 0
  • requests庫 雖然Python的標(biāo)準(zhǔn)庫中 urllib模塊已經(jīng)包含了平常我們使用的大多數(shù)功能珊楼,但是它的 AP...
    久壑閱讀 301評論 0 0