requests庫基本使用

來源:互聯網
上載者:User

標籤:file   共用   指定   資料   一個   信任   alt   org   use   

requests庫get請求:

1.通過requests.get()來調用:

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

2.添加header和查詢參數:

如傳入參數的get請求:

import requestsurl = ‘https://www.baidu.com/s‘kw = {    ‘wd‘:‘中國‘}headers = {    ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘}#params接收一個字典或者字串的查詢參數,字典類型自動轉換為url編碼,不需要urlencode()response = requests.get(url=url,params=kw,headers=headers)print(response.text)    

 

 查詢參數:

print(response.text)        #返回Unicode格式的資料(str)print(response.content)         #返回位元組流資料(bytes)print(response.url)        #查看完整url地址print(response.encoding)          #查看回應標頭部字元編碼print(response.status_code)     #查看響應碼

  

response.text和response.content的區別:

1.response.content:這個是直接從網路上面抓取的資料。沒有經過任何解碼。所以是一個bytes類型。其實在硬碟上和在網路上傳輸的字串部是bytes類型。

2.response.text:這個是str的資料類型,將response.content進行解碼的字串。解碼需要指定一個編碼方式,requests會根據自己的猜測來判斷編碼的方式。所以有時候可能會猜測錯誤,就會導致解碼產生亂碼。這時候就應該使用”response.content.decode(‘utf-8‘)或者更多進行手動解碼。

post請求:

1.基本post要求方法:

response = requests.post(‘https://www.baidu.com/‘,data=data)

2.傳入data資料:

import requestsdata = {    ‘name‘:‘tom‘,‘age‘:‘22‘}response = requests.post(‘http://httpbin.org/post‘, data=data)
print(response.text)

#print(response.json())    #輸出為字典類型資料
使用代理:

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

import requestsurl = ‘http://bj.xiaozhu.com/search-duanzufang-p{}-0/‘headers = {    ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘,    ‘Referer‘:‘http://bj.xiaozhu.com/search-duanzufang-p{}-0/‘}proxy = {        ‘http‘:‘121.232.194.147:9000‘}    #Proxy 伺服器response = requests.get(url=url,proxies=proxy,headers=headers)with open(‘xiaozhu.html‘,‘w‘,encoding=‘utf-8‘) as fp:       #儲存     fp.write(response.text)print(response.text)    
cookie:

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

#擷取cookieimport requestsresponse = requests.get(‘http://www.baidu.com‘)print(response.cookies)print(type(response.cookies))for k,v in response.cookies.items():        #.items() 遍曆字典列表    print(k+‘:‘+v)

session:

會話對象。(使用多次請求中共用cookie)

requests庫的session對象能夠幫我們跨請求保持某些參數,也會在同一個session執行個體發出的所有請求之間保持cookies。
import requestsurl = ‘http://www.renren.com/SysHome.do‘data = {    "email":"[email protected]",    "password":"*******"}headers = {    ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘}#登入session = requests.session()session.post(url=url,data=data,headers=headers)#訪問**個人中心resp = session.get(‘http://www.renren.com/968214405/profile‘)print(resp.text)

處理不信任的SSL信任的認證:

import requestsresp = requests.get("http://www.12386.cn/morshweb/", verify=False)  #verify=False     #意思是不需要驗證ssl認證print(resp.content.decode("utf-8"))

  

 

requests庫基本使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.