python使用心得之获得github代码库列表

yipeiwu_com5年前Python基础

1.背景

项目需求,要求获得github的repo的api,以便可以提取repo的数据进行分析。研究了一天,终于解决了这个问题,虽然效率还是比较低下。

因为github的那个显示repo的api,列出了每个repo的详细信息,而且是json格式的。现在貌似还没有找到可以分析多个json格式数据的方法,所以用的是比较蠢得splite加re的方法。如果大家有更好的方法,不发留言讨论!

2.代码

import re
import os

def GetUrl(num):
 str = os.popen("curl -G https://api.github.com/repositories?since=%d"%(num)).read()
 pattern = '"url"'
 pattern1='repos'
 urls=str.split(',\n')  
 for i in urls:
  if pattern in i and pattern1 in i:   
#  text1=i.splite(':')
  text=re.compile('"(.*?)"').findall(i)[1]
  print text
if __name__=='__main__':
 GetUrl(1000)

    其中num的值指的是页面的id,我们可以做一个循环,不断增大num的值,就可以无限提取repo。因为github的api对于流量是有限制的,所以这么做是一个可行的方法。

效果如下(提取下来的repo的api地址):

https://api.github.com/repos/wycats/merb-core

https://api.github.com/repos/rubinius/rubinius

https://api.github.com/repos/mojombo/god

https://api.github.com/repos/vanpelt/jsawesome

https://api.github.com/repos/wycats/jspec

https://api.github.com/repos/defunkt/exception_logger

https://api.github.com/repos/defunkt/ambition

https://api.github.com/repos/technoweenie/restful-authentication

https://api.github.com/repos/technoweenie/attachment_fu

https://api.github.com/repos/topfunky/bong

https://api.github.com/repos/Caged/microsis

https://api.github.com/repos/anotherjesse/s3

https://api.github.com/repos/anotherjesse/taboo

https://api.github.com/repos/anotherjesse/foxtracs

https://api.github.com/repos/anotherjesse/fotomatic

https://api.github.com/repos/mojombo/glowstick

https://api.github.com/repos/defunkt/starling

https://api.github.com/repos/wycats/merb-more

https://api.github.com/repos/macournoyer/thin

https://api.github.com/repos/jamesgolick/resource_controller

https://api.github.com/repos/jamesgolick/markaby

https://api.github.com/repos/jamesgolick/enum_field

https://api.github.com/repos/defunkt/subtlety

https://api.github.com/repos/defunkt/zippy

https://api.github.com/repos/defunkt/cache_fu

https://api.github.com/repos/KirinDave/phosphor

相关文章

Django在Win7下的安装及创建项目hello word简明教程

python广受欢迎的编程语言之一,本文简述了python 的django 框架安装与开发。 Django在Win7下的安装及创建项目hello word,相对而言非常简单,这里直接给出...

基于pandas将类别属性转化为数值属性的方法

基于pandas将类别属性转化为数值属性的方法

离散特征的编码分为两种情况: 1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码 2、离散特征的取值有大小的意义,比如size:[...

python判断一个集合是否为另一个集合的子集方法

实例如下所示: a = [1,2,3,4] b = set([1,2]) b.issubset(a) 以上这篇python判断一个集合是否为另一个集合的子集方法就是小编分享给大家的...

pycharm 使用心得(一)安装和首次使用

pycharm 使用心得(一)安装和首次使用

首先预览一下 PyCharm 在实际应用中的界面:(更改了PyCharm的默认风格) 安装 首先去下载最新的pycharm 2.7.3,进行安装。可以直接在官网下载。 PyCharm...

python中如何使用insert函数

这篇文章主要介绍了python中如何使用insert函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 描述 insert() 函数用...