資源簡介 (共24張PPT)Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque tatibus et magnis dis parturient montes, nascetur ridiculus mus.少兒編程課初識HTTP協議我們先來學習HTTP協議。那么什么是協議呢?微信和知乎,背后通訊的過程大致如下:微信服務器微信知乎服務器知乎知乎/今日頭條/抖音服務器(Java、PHP等)知乎/今日頭條/抖音客戶端(Android、IOS、瀏覽器頁面、桌面應用)知乎/今日頭條/抖音數據庫(MySQL、Oracle等)請求request響應response接收請求發起數據庫連接從數據庫取得數據數據轉為JSON接收JSON數據解析JSON展示到頁面上HTTP協議:請求+響應我們個人能做新聞類/天氣類客戶端嗎?公共服務端答案是可以的!一些企業和政府機構已經提供了公共的數據:天氣預報客戶端每日新聞客戶端人臉識別客戶端英文翻譯客戶端……客戶端天氣預報服務端每日新聞服務端人臉識別服務端英文翻譯服務端……服務端公共服務端公共服務端那么我們如何使用這些公共的服務呢?通過網址天氣預報客戶端每日新聞客戶端人臉識別客戶端英文翻譯客戶端……客戶端天氣預報服務端每日新聞服務端人臉識別服務端英文翻譯服務端……服務端www.1.comwww.2.comwww.3.comwww.4.comwww.5.com公共服務端這個過程就和去食堂吃飯一樣,想吃什么就去對應的窗口,網址就相當于是打飯的窗口,這里稱為接口{"code": 200,"msg": "success","newslist": [{"ctime": "2016-07-12 13:36","title": "外媒:特雷莎-梅贏得首相之職 但將面臨脫歐硬仗","description": "搜狐國際","picUrl": "http://photocdn./20160712/Img458833600_ss.png","url": "http://news./20160712/n458855349.shtml"},{"ctime": "2016-07-12 11:17","title": "廢棄肉餅流入市場 日本警方逮捕三名嫌犯","description": "搜狐國際","picUrl": "http://photocdn./20160712/Img458826696_ss.jpeg","url": "http://news./20160712/n458828803.shtml"}]}Json數據接口地址http://apistore./apiworks/servicedetail/823.html來看下新聞APP如何來做這些數據接口都能在哪找到呢?showapi:https://www.海航數據開放平臺:https://data./idataapi:http://www.深圳市政府數據開放平臺:http://opendata.sz.成都市公共數據開放平臺:http://www.cddata./廣東省數據開放平臺:http://www.gddata./聚合數據:https://www.淘寶數據開放平臺:http://open.阿里、百度、訊飛、圖靈機器人、。。。。。。。Requests庫下載安裝requests是一個第三方庫,用來完成HTTP請求,獲取網絡數據1首先是requests的下載2按下回車,將會自動下載安裝安裝完成之后,來看一下requests庫的簡單使用,先來看這樣一個網站:http://www.httpbin.org這個網站能測試 HTTP 請求和響應的各種信息,比如 cookie、ip、headers 和登錄驗證等且支持 GET、POST 等多種方法,對 web 開發和測試很有幫助GET請求先來試一下簡單的GET請求1導入requests庫2使用get方法去請求網站,將結果輸出import requestsres = requests.get('http://www.httpbin.org')print(res.text)3結果如下,輸出了整個網頁文本:使用res變量代表請求后的響應信息,res.text是網頁返回的數據然后在進行GET請求時,傳入參數1傳入參數:用戶名和密碼2輸出相應信息中的網址和內容3結果如下:res = requests.get('http://www.httpbin.org/get', params={'username': 'cloudream'})print(res.url)print(res.text)返回的網址后面拼接上了我們傳入的參數返回的內容是json數據,包含傳入的參數、請求頭等信息POST請求現在,我們來寫一個帶有請求頭和參數的post請求1編寫請求頭2發起post請求,并將數據輸出headers = {'User‐Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)''AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87Safari/537.36'}res = requests.post('http://www./index.php app=fullstack&mod=Public&act=doLogin',data={'account': 'chen@ucai','password': '111111','remember': 'undefined'}, headers=None)print(res.text)二進制數據使用requests獲取二進制數據,并存到本地1導入相關庫2使用get方法去請求網站,將結果輸出3以二進制方式讀取圖片數據import requestsfrom PIL import Imagefrom io import BytesIO# 二進制數據res = requests.get('http://pic29.nipic.com/20130511/9252150_174018365301_2.jpg')BytesIO能夠在內存中讀寫二進制數據img = Image.open(BytesIO(res.content))img.save(r"C:\Users\m_sha\Desktop\test.jpg")4將文件存儲到桌面使用requests的get方法獲取json數據1get獲取json數據res = requests.get('http://httpbin.org/get')print(res.json())2返回的json數據如下:Post也可以發送json數據,我們使用兩種不同的方式發送數據來觀察有什么不同1get獲取json數據3Post發送json數據form = {'username': 'cloud', 'password': '123456'}res = requests.post('http://httpbin.org/post', data=form)print(res.text)2request如下:res = requests.post('http://httpbin.org/post', data=json.dumps(form))print(res.text)4第二種request如下:總結SummaryHTTP協議√Request庫的簡單使用√Thanks! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫