python怎么做項目_聽說你沒有python項目可做,我教你個方法

原標題:聽說你沒有python項目可做,我教你個方法

學習了一段時間的Python,最近出現了“饑荒”,感覺需要多看些代碼,多學習學習別人做些什么,但卻不知道做點什么來進行練習。

說到看代碼,我就想到了全球最大的同性交友網站GitHub。

在GitHub上面找項目還不能漫無目的的去找啊,畢竟這是一個大寶庫,里面的內容非常豐富;

不僅僅是有Python,還有JS,JAVA等很多很多的語言,如果一直盲目的看下去,會浪費大量的時間。

所以我就打算寫一個小爬蟲,來爬取一下GitHub上面我想要的小項目。

b4d832f6d7b44a5e8341cea91871ba86.png

·首先既然是要練習python的項目,肯定語言是Python;

·其次,既然是小項目,那代碼不會太長,我這里設置為150K-200K的文件大小,這樣應該項目也會比較小;

·最后,我如果獲取的是整個GitHub上面的這個大小的python項目,對我來說也是海量的,所以要限制數量,我這里限制為最近一個月發布的30個項目。

好了這就是我的需求了,一共三點,同樣我們要去考慮一下,這三點的內容應該如何應對。

首先第一個就是怎么去找到所有的python項目呢?在這里我們使用了GitHub的API來獲取項目,那首先來看一下API的形式。

https://api.github.com/search/code?q=language:想找的語言

這個輸入了之后,就可以找到想找的語言的所有項目了。

但找到了并沒有結束,還需要給爬下來,那這里面選擇的是requests庫,通過requests對網頁進行訪問,獲取數據:

import requests

GetCodeApi = "https://api.github.com/search/code?q="

GetRepoApi ="https://api.github.com/search/repositories?q=language:python"

在整個API中,設置的條件還有三個還要提供文件大小以及目錄:

https://api.github.com/search/code?q=language:語言+size:大小+repo:目錄

這里大家可能比較好奇為什么我可以構建出來這樣的一個API,實際上是通過GitHub的API接口網站來找的,這里有一個例子:

57680cd2ecd4413789c92c5fcc490bac.jpeg

我們可以看到里面有很多的字段,比如說我選中的這個字段,實際上就代表了這個文件的大小,那也是符合我們需要的字段,那就需要在這個API中體現出來。

repo這個參數在哪里呢?實際上這個參數在html_url中:

0ec6a9db209a49999348a335ed74e417.jpeg

當然啦,你要是認為哪個repo是和full_name一樣的話,也是可以的,其實我最開始也是這么認為的。

不過后來我看到了下面這個東西,就認為上面的那個html_url這個更為靠譜些,就選擇它了。

f791b62c88f84f63b3d4c8023edc15e1.jpeg

后面全部都是這個東西,那就是我們所需要的了。

下面我們就要建立一個函數,三個參數是需要我們自己輸入的。

def get_code(language, size, repo):

這三個參數都是為了組成URL的,那這里面我們也要寫上URL的內容:

url = GetCodeApi +"language:" + language + "+size:" + size +"+repo:" + repo

這樣就可以訪問GitHub的接口了,但是我們要用它,讀取這個JSON內容:

info =requests.get(url).json()

外加一個循環來進行重復性的操作:

if 'items' in info:

for i ininfo['items']:

print(i['html_url'])

構建完了整個的函數。下面放上完整版:

def get_code(language, size, repo):

url = GetCodeApi +"language:" + language + "+size:" + size +"+repo:" + repo

# 訪問GitHub接口

info =requests.get(url).json()

if 'items' in info:

for i ininfo['items']:

print(i['html_url'])

好,構建完了這個之后,我們就要進行下一步了,在上一步中我們實際上解決了兩個問題;

一個是如何查找所有的python語言的項目,第二個是怎么限制文件的大小。

接下來需要解決的就是判斷時間的問題,我們需要找到JSON里面寫的這個:

d06d9157aef54b699b7417926b5d3e3b.jpeg

方框中這兩個值比較重要,第一個帶黃底的是建立時間,第二個是更新時間。

框選兩個是方便我們進行篩選,如果想找建立時間的,就用created_at進行判斷,如果想找更新時間的就用updated_at來判斷。

def get_project(FindTime):

info = requests.get(GetRepoApi).json()

for I in info[‘items’]:

created_time = i[‘created_at’]

當然了,這里面我們找的是建立時間的,也可以找更新時間的(更新時間的感覺項目會更多一些),

如果要是更新時間的就將created_at改為updated_at就可以了。

if created_time > FindTime

如果建立時間大于查找時間的時候,就執行下面的內容(這里給內容直接寫死了,大家可以開動一下腦筋改一下~改為自己輸入哦~):

language ="python"

size = "<200"

現在看到其實語言和size寫死了,但是這個repo真的不能寫死啊,這時候上面的截圖里面有些html_url的后面箭頭指的是repo的,那我們需要提取出來:

repo =i['html_url'].replace("https://github.com/", "")

這次就要激活一下上面寫的查找函數了:

get_code(language,size, repo)

執行這個函數就OK了,但是這里面有個問題,就是這個時間的問題。

時間推薦直接手動修改字符串,例如get_project(‘2019-02-12T00:00:00Z’)

好,那就給這部分的代碼完整版放出來咯

def get_project(FindTime):

info = requests.get(GetRepoAPI).json()

for i in info['items']:

created_time =i['created_at']

if created_time >last_week:

language ="python"

size ="<200"

repo =i['html_url'].replace("https://github.com/", "")

get_code(language,size, repo)

這樣我們就有取之不盡,用之不竭的小項目可以模仿,可以學習咯~

輸出的結果是這樣的:

439c60f3114040f5b840113e6aa0e57e.jpeg

最后,我將繼續扮演一個小白,努力創造一個努力學習的小白形象,技術代碼兩開花,弘揚中華文化,希望大家多多支持啊~返回搜狐,查看更多

責任編輯:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537525.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537525.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537525.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux系統CPU相關信息查詢

Linux系統CPU相關信息查詢 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一.lscpu常用參數介紹 1>.查看幫助信息 [rootnode105 ~]# lscpu -h-a, –all: 包含上線和下線的cpu的數量&#xff0c;此選項只能與選…

excel下拉讓函數參數部分不變

原理 使用相對引用就會變&#xff0c;bai使用絕對引用du就不變 A1是相對引用&#xff0c;上下拉公式的時候會zhi變成A2,A3…… $A$1是行列絕對引用dao&#xff0c;上下拉公式的時候不會變化 $A1&#xff0c;是行絕對引用&#xff0c;上下拉公式的時候會變化&#xff0c;$A2&am…

select * 排除字段_編寫 SQL 的排除聯接

有兩個表&#xff0c;就叫作源表和目標表吧。它們有一個相同的字段&#xff0c;通過該字段可以把源表和目標表關聯在一起&#xff0c;我們希望從源表中檢索到的記錄里的關聯字段的值沒有存在目標表中。舉個例子&#xff0c;源表 dept&#xff0c;目標表 emp&#xff0c;獲取 de…

JS中調用bignumber處理高精度小數運算

ignumber.js用于數字精度要求較高的計算。 bignumber.js源碼地址&#xff1a;https://github.com/MikeMcl/bignumber.js 1.下載bignumber.js。 下載地址&#xff1a;https://github.com/MikeMcl/bignumber.js/releases 2.引入js。 3.示例 html: <div><label>數1&am…

centos8安裝搜狗輸入法_搜狗拼音輸入法去廣告版

搜狗輸入法是搜狗公司2006年6月推出的一款漢字輸入法工具。與傳統輸入法不同&#xff0c;搜狗輸入法是第一款為互聯網而生的輸入法——它通過搜索引擎技術&#xff0c;將互聯網變成了一個巨大的“活”詞庫。應該有許多人電腦上都裝了吧&#xff0c;不過一般下載的版本天天彈廣告…

Project查看資源分配情況

選擇 資源圖表&#xff0c;點擊 格式&#xff0c;在圖表里選擇

webbrowser實現input tab事件_如何合理構造一個Uploader工具類(設計到實現)

作者&#xff1a;Chaser (本文來自作者投稿) 原文地址&#xff1a;https://juejin.im/post/5e5badce51882549652d55c2源碼地址&#xff1a;https://github.com/impeiran/Blog/tree/master/uploader前言本文將帶你基于ES6的面向對象&#xff0c;脫離框架使用原生JS&#xff…

小達人點讀筆的任我貼貼紙怎么使用?

小達人點讀筆是一款高性能、高容量點讀筆。其自身的開放性、共享性、傳播性讓可讀書籍及音頻資源真正的達到了海量且優質有用。 下面我們來認識一下標配中任我貼上的貼紙&#xff1a; 智能貼 用于已經布有二維碼的有聲圖書的封面&#xff0c;比如律動英語&#xff0c;成長一線&…

vscode必備插件_10個必備的Visual Studio Code (VS code)插件

我基本上每天都用vs code&#xff0c;我喜歡的小巧&#xff0c;開源&#xff0c;免費并且非常強大。尤其它非常多的插件可以免費使用。這里我把經常用插件介紹給大家&#xff0c;希望大家留言討論我把VS code 插件分兩類&#xff0c;一類是處理可視化的&#xff0c;比如說顏色&…

軟考官方教材:信息系統項目管理師教程(第三版)

2020年下半年信息系統項目管理師考試官方教材將繼續使用清華大學出版社出版的信息系統項目管理師教程第3版&#xff08;特別注意&#xff0c;有某些輔導資料也打著信息系統項目管理師教程第3版的旗號&#xff0c;各位考生一定要看準官方指定教材是由全國計算機專業技術資格考試…

centos掛載windows共享目錄

2019獨角獸企業重金招聘Python工程師標準>>> 在windows中創建一個共享文件夾記住這個網絡路徑&#xff0c; 在centos上新建文件夾/mnt/MyShare $> mkdir /mnt/MyShare掛載 username用戶名.password登錄密碼 $> Sudo mount -t cifs -o username用戶名,pass…

博閱likebook alita專用pdf制作

適合博閱likebook alita帶手寫的。 先上效果圖&#xff0c;左邊是正文&#xff0c;右邊有留白可以寫讀書筆記 這樣做有什么好處&#xff1f; pdf從閱讀器里復制出來&#xff0c;在電腦打開&#xff0c;筆記也會有。筆記是直接記錄在pdf上的&#xff0c;相當于pdf上的批注。 …

esc鍵沒反應_有機人名反應——Brown 硼氫化反應(Brown Hydroboration)

Brown 硼氫化反應&#xff08;Brown Hydroboration&#xff09;反應機理鏈接&#xff1a;http://chem.kingdraw.cn/Shortlink?id20200624161301Brown硼氫化反應&#xff0c;是指乙硼烷在醚類溶液中離解成的甲硼烷以B-H鍵與烯烴、炔烴的不飽和鍵加成&#xff0c;生成有機硼化合…

利用IDisposable接口構建包含非托管資源對象

托管資源與非托管資源 在.net中&#xff0c;對象使用的資源分為兩種&#xff1a;托管資源與非托管資源。托管資源由CLR進行管理&#xff0c;不需要開發人員去人工進行控制&#xff0c;.NET中托管資源主要指“對象在堆中的內存”&#xff1b;非托管資源指對象使用到的一些托管內…

修改Navicat數據庫自動備份目錄

1.右鍵連接&#xff0c;選擇“編輯連接” 2. 選擇“高級”&#xff0c;設置位置

python圖形界面編程庫_Python支持哪些圖形界面的第三方庫

Python支持哪些圖形界面的第三方庫 發布時間&#xff1a;2020-11-09 10:37:56 來源&#xff1a;億速云 閱讀&#xff1a;58 作者&#xff1a;小新 這篇文章給大家分享的是有關Python支持哪些圖形界面的第三方庫的內容。小編覺得挺實用的&#xff0c;因此分享給大家做個參考。一…

成為中國特色項目經理,走上人生巔峰

今天是秋分&#xff0c;寫在項目經理6周年的總結 落葉知秋&#xff0c;情誼如酒&#xff0c;風漸涼時有喜無憂&#xff1b; 歲月流走&#xff0c;驀然回首&#xff0c;一聲問候醇綿依舊&#xff1b; 有情相守&#xff0c;不離左右&#xff0c;含笑送出這份問候。 -----------…

python中括號的作用_Python3--中括號[]與冒號:在列表中的作用

先來定義兩個列表: liststr ["helloworld","hahahh","123456"] listnum [1,2,3,4,5,6] 這兩個列表都可以看懂吧,一個字符串組成的列表,一個數字組成的列表 中括號"[]"的作用 : 用于定義列表或引用列表、數組、字符串及元組中元素位置…

相約11月25日,開發者的嘉年華

》》廈門GDG DevFest 2018 2018 年 11 月 25 日&#xff0c;大家期待已久的廈門GDG DevFest 2018 將于廈門大學科藝中心隆重舉行&#xff01; 此次活動主題是時下最受關注的人工智能領域&#xff0c;邀請數位重量級嘉賓&#xff0c;帶來關于 TensorFlow、Android等最新技術內容…

項目經理到底要不要懂技術?

不難發現&#xff0c;高薪項目經理崗位&#xff0c;往往對項目經理有技術要求。為什么會這樣&#xff1f; 存在即合理&#xff0c;一定是現實中需要&#xff0c;項目實施過程中有必要。 想起了自己以前有次面試&#xff0c;二面是公司總經理&#xff0c;總經理說&#xff1a;…