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中的标识运算符
May 14 Python
Python函数可变参数定义及其参数传递方式实例详解
May 25 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
Python+request+unittest实现接口测试框架集成实例
Mar 16 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
OpenCV 边缘检测
Jul 10 Python
Python Celery多队列配置代码实例
Nov 22 Python
python实现信号时域统计特征提取代码
Feb 26 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
Python必备技巧之字符数据操作详解
Mar 23 Python
python中的random模块和相关函数详解
Apr 22 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实现的MySQL数据浏览器
2007/03/11 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
js使用心得分享
2015/01/13 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
vue实现弹幕功能
2019/10/25 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
python类中super()和__init__()的区别
2016/10/18 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Python OpenCV获取视频的方法
2018/02/28 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
可靠的数据流传输TCP
2016/03/15 面试题
实验室标语
2014/06/21 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
党员承诺书格式范文
2015/04/28 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
科级干部培训心得体会
2016/01/06 职场文书
python 模块重载的五种方法
2021/04/24 Python
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Redis RDB技术底层原理详解
2021/09/04 Redis