除了從文件加載數(shù)據(jù),另一個數(shù)據(jù)源是互聯(lián)網(wǎng),互聯(lián)網(wǎng)每天產(chǎn)生各種不同的數(shù)據(jù),可以用各種各樣的方式從互聯(lián)網(wǎng)加載數(shù)據(jù)。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站頁面設(shè)計、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)的建站公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設(shè)計最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅持講誠信,負責(zé)任的原則,為您進行細心、貼心、認真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。
一、了解Web API
Web 應(yīng)用編程接口(API)自動請求網(wǎng)站的特定信息,再對這些信息進行可視化。每次運行,都會獲取最新的數(shù)據(jù)來生成可視化,因此即便網(wǎng)絡(luò)上的數(shù)據(jù)瞬息萬變,它呈現(xiàn)的信息也都是最新的。
Web API是網(wǎng)站的一部分,用于與使用非常具體的URL請求特定信息的程序交互。這種請求稱為API調(diào)用。請求的數(shù)據(jù)將以易于處理的格式(如JSON或CSV)返回。
GitHub(https://github.com/)上的項目都存儲在倉庫中,后者包含與項目相關(guān)聯(lián)的一切:代碼、項目參與者的信息、問題或bug報告等,編寫一個自動下載GitHub上的Python項目的相關(guān)信息。
在瀏覽器中打開: https://api.github.com/search/repositories?q=language:python&sort=stars,可以看到如下內(nèi)容,
此調(diào)用返回GitHub當(dāng)前托管了total_count 個Python項目,還有最受歡迎的Python倉庫的信息。
其中第一部分( https://api.github.com/ )將請求發(fā)送到GitHub網(wǎng)站中響應(yīng)API調(diào)用的部分;
第二部分( search/repositories )讓API搜索GitHub上的所有倉庫。
repositories 后面的問號指出我們要傳遞一個實參。 q 表示查詢,而等號讓我們能夠開始指定
查詢( q= )。通過使用 language:python ,我們指出只想獲取主要語言為Python的倉庫的信息。
最后一部分( &sort=stars )指定將項目按其獲得的星級進行排序。
但我們不能每次通過打開網(wǎng)頁的形式來獲取數(shù)據(jù)。但可以通過python中相關(guān)庫
二、安裝requests
requests是一個很實用的Python HTTP客戶端庫,專門用于發(fā)送HTTP請求,方便編程,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到,
Requests主要相關(guān)參數(shù)有:
r.status_code 響應(yīng)狀態(tài)碼
r.heards 響應(yīng)頭
r.cookies 響應(yīng)cookies
r.text 響應(yīng)文本
r. encoding 當(dāng)前編碼
r. content 以字節(jié)形式(二進制)返回
鑒于一直都使用的是anaconda3,可直接打開 anaconda prompt,然后輸入命令:pip install --user requests 安裝即可。
下面來編寫一個程序,執(zhí)行API調(diào)用并處理結(jié)果,找出GitHub上星級最高的Python項目,代碼如下:
import requests # 導(dǎo)入模塊requests url='https://api.github.com/search/repositories?q=language:python&sort=stars'#存儲API調(diào)用的URL r = requests.get(url) # 調(diào)用get()并將URL傳遞給它,響應(yīng)對象存儲在變量 r中 print("Status code:",r.status_code) #包含一個名為status_code的屬性 response_dict = r.json() # 使用方法json()將這些信息轉(zhuǎn)換為一個Python字典 print(response_dict.keys()) #打印出字典的key