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单元测试unittest实例详解
May 11 Python
Django中的Signal代码详解
Feb 05 Python
python用户管理系统
Mar 13 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
python整合ffmpeg实现视频文件的批量转换
May 31 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
python中for in的用法详解
Apr 17 Python
Python中return函数返回值实例用法
Nov 19 Python
python通过cython加密代码
Dec 11 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
两种php实现图片上传的方法
2016/01/22 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
js加强的经典分页实例
2013/03/15 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
Python入门篇之函数
2014/10/20 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python中类的属性和方法介绍
2018/11/27 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
专科应届生求职信
2013/11/24 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
研究生导师评语
2014/12/31 职场文书
委托公证书格式
2015/01/26 职场文书
学校国庆节活动总结
2015/03/23 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
使用Redis实现分布式锁的方法
2022/06/16 Redis