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命名空间详解
Aug 18 Python
使用Python的Django框架实现事务交易管理的教程
Apr 20 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
Python实现定时精度可调节的定时器
Apr 15 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
python程序变成软件的实操方法
Jun 24 Python
python求最大值最小值方法总结
Jun 25 Python
使用django实现一个代码发布系统
Jul 18 Python
Python简易版图书管理系统
Aug 12 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
python tkinter模块的简单使用
Apr 07 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
php实现socket推送技术的示例
2017/12/20 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
JavaScript new对象的四个过程实例浅析
2018/07/31 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
Python爬虫爬验证码实现功能详解
2016/04/14 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
美国最大的团购网站:Groupon
2016/07/23 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
斯福泰克软件测试面试题
2015/02/16 面试题
会计毕业生自我鉴定
2013/11/04 职场文书
关于人生的感言
2014/01/17 职场文书
垂直极限观后感
2015/06/08 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
PHP实现两种排课方式
2021/06/26 PHP
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers