python的requests初步使用

2021-07-10 17:20:36 字數 3684 閱讀 9856

早就聽說requests的庫的強大,只是還沒有接觸,今天接觸了一下,發現以前使用urllib,urllib2等方法真是太搓了……

這裡寫些簡單的使用初步作為乙個記錄

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

26

r = requests.get('')

print r.text

''',

"headers": ,

"origin": "124.192.129.84",

"url": ""

'''# 傳送帶引數的get請求,將key與value放入乙個字典中,通過params引數來傳遞,其作用相當於urllib.urlencode

``` python

>>> import requests

>>> pqyload =

>>> r = requests.get('',params = pqyload)

>>> r.url

u'?q=%e6%9d%a8%e5%bd%a6%e6%98%9f'

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

>>> payload = 

>>> r = requests.post("", data=payload)

>>> print r.text

,"data": "",

"files": {},

"form": ,

"headers": ,

"json": null,

"origin": "124.192.129.84",

"url": ""

}>>>

可以看到,post引數已經傳到了form裡,data不光可以接受字典型別的資料,還可以接受json等格式

123

4

>>> payload = 

>>> import json

>>> r = requests.post('', data=json.dumps(payload))

這個相當於向**上傳一張,文件等操作,這時要使用files引數

123

4

>>> url = ''

>>> files =

>>> r = requests.post(url, files=files)

123

4567

>>> import json

>>> url = ''

>>> payload =

>>> r = requests.post(url, data=json.dumps(payload), headers=headers)

r = requests.get(『『)

print r.status_code

1

23

>>> print r.headers

也可以取到這個個別的響應頭用來做一些判斷,這裡的引數是不區分大小寫的

也可以自已定義請求的cookies

123

4567

891011

12

>>> url = ''

>>> cookies =

>>> r = requests.get(url,cookies = cookies)

>>>

>>> print r.text

}>>>

cookies還有很多,因為目前我也還不是很多,以後再擴充吧

1

2

>>> requests.get('', timeout=1)

如果將時間設定成非常小的數,如requests.get(『』, timeout=0.001),那麼如果在timeout的時間內沒有連線,那麼將會丟擲乙個timeout的異常

先初始化乙個session物件,s = requests.session()

然後使用這個session物件來進行訪問,r = s.post(url,data = user)

參考文章  基本上都是從這扒的**

20151029更新,和美女劉巍進行討論,由於很久沒有登入人人網,它的登入頁面與獲得最近來訪的頁面都有所變動,登入時的url是 獲取最近來訪是

更多的來訪就是以帶session的訪問

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

30

#coding:utf-8

import requests

import re

url = r''

user =

s = requests.session()

r = s.post(url,data = user)

html = r.text

visit =

first = re.compile(r'

(.*?)')

second = re.compile(r'

(.*?)')

third = re.compile(r'

(.*?)')

last = re.compile(r'

(.*?)')

visit.extend(first.findall(html))

visit.extend(second.findall(html))

visit.extend(third.findall(html))

visit.extend(last.findall(html))

for i in visit:

print i

print

'以下是更多的最近來訪'

vm = s.get('')

fm = re.compile(r'"name":"(.*?)"')

visitmore = fm.findall(vm.text)

for i in visitmore:

print i

renren

Python之requests的安裝

在 windows 系統下,只需要輸入命令 pip install requests 即可安裝。在 linux 系統下,只需要輸入命令 sudo pip install requests 即可安裝。注 關於python第三方庫的安裝最好少使用 easy install,因為 easy install...

Python之requests的安裝

在 windows 系統下,只需要輸入命令 pip install requests 即可安裝。在 linux 系統下,只需要輸入命令 sudo pip install requests 即可安裝。注 關於python第三方庫的安裝最好少使用 easy install,因為 easy install...

python對於requests的封裝

由於requests是http類介面的核心,因此封裝前考慮問題比較多 1.對多種介面型別的支援 2.連線異常時能夠重連 3.併發處理的選擇 4.使用方便,容易維護 當前並未全部實現,後期會不斷完善。重點提一下併發處理的選擇 python的併發處理機制由於存在gil的原因,實現起來並不是很理想,綜合考...