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


Posted in Python onJune 25, 2014

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

Python 相关文章推荐
python Django模板的使用方法(图文)
Nov 04 Python
Python中用format函数格式化字符串的用法
Apr 08 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
Python实现打砖块小游戏代码实例
May 18 Python
python用for循环求和的方法总结
Jul 08 Python
python设计tcp数据包协议类的例子
Jul 23 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
在Python中使用异步Socket编程性能测试
Jun 25 #Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 #Python
python 字典(dict)遍历的四种方法性能测试报告
Jun 25 #Python
用python登录Dr.com思路以及代码分享
Jun 25 #Python
python正则表达式re模块详解
Jun 25 #Python
Python通过websocket与js客户端通信示例分析
Jun 25 #Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 #Python
You might like
php实现文本数据导入SQL SERVER
2015/05/17 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
js同时按下两个方向键
2007/12/01 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
大学校庆策划书
2014/01/31 职场文书
高中运动会广播稿
2014/09/16 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
创业计划书之校园超市
2019/09/12 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL