爬取Github Web API 并存入Mysql数据库
寫在前面
本文內容為爬取GitHub的Web API并存入mysql數據庫,內容為華為鴻蒙OS相關的代碼。
WEB API
Web API是網絡應用程序接口。它包含了廣泛的功能,網絡應用通過API接口,可以實現存儲服務、消息服務、計算服務等能力。Web API最主要的功能是實現構建基于GTTP的面向各種客戶端的服務框架。
Github 的 Web API
可以通過 https://api.github.com 查看Github 的 Web API列表
例如:https://api.github.com/repos/{owner}/{repo},可以通過用戶名和倉庫名獲取到指定項目的有關內容。
(1)導入所需Python庫
import requests import pymysql(2)定義指定的Web API的URL,并將其賦給變量api_url。
這里先設為 https://api.github.com/repos/Awesome-HarmonyOS/HarmonyOS
其中,Awesome-HarmonyOS表示用戶名,HarmonyOS表示倉庫名。
查看狀態碼,200為正常響應。
api_url= 'https://api.github.com/repos/Awesome-HarmonyOS/HarmonyOS' req = requests.get(api_url) print('狀態碼:', req.status_code)可以直接在瀏覽器中進行訪問,查看數據大致情況如下圖所示:
可以看到,響應數據包含的值較多,因此在爬取之后可以考慮對數據進行簡單清洗,只保留一些需要的重要信息。
(3)使用requests庫的get方法獲得Web API的Response對象。
req = requests.get(api_url)(4)使用json方法將Response的數據轉換為JSON的數據對象。
req_dic = req.json()(5)打印一些基本信息
上述做法可以成功爬取到指定HarmonyOS倉庫的信息,接下來爬取所有與HarmonyOS有關的倉庫信息。
(6)將api_url改為https://api.github.com/search/repositories?q=HarmonyOS
搜索關鍵詞為HarmonyOS的倉庫
api_url= 'https://api.github.com/search/repositories?q=HarmonyOS' req = requests.get(api_url) print('狀態碼:', req.status_code) req_dic = req.json()(7)查看本次Web API請求是否完成,false表示完成。以及返回項目數量。
req_dic_items = req_dic['items'] print(req_dic['incomplete_results']) print(len(req_dic_items))(8)使用pymysql連接數據庫,創建數據庫、表并插入數據。
通過pymysql庫的connect方法返回數據庫連接對象db,在改方法中傳入參數host、user、password等。
最終結果
總結
以上是生活随笔為你收集整理的爬取Github Web API 并存入Mysql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法竞赛入门经典 例题6-2 铁轨(C、
- 下一篇: 数据库基础知识——MySQL服务的启动和