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

作者:hebedich 时间:2023-12-01 21:31:51 

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,github,api
0
投稿

猜你喜欢

  • 基于python的Tkinter实现一个简易计算器

    2021-07-15 19:15:12
  • Python中一些自然语言工具的使用的入门教程

    2023-08-31 06:17:01
  • Python常用数据分析模块原理解析

    2023-07-12 03:46:31
  • 前端页面文件拖拽上传模块js代码示例

    2023-09-20 02:15:30
  • 对python实时得到鼠标位置的示例讲解

    2022-02-21 10:01:25
  • 使用TensorFlow直接获取处理MNIST数据方式

    2022-12-16 22:35:49
  • 不用Global.asa也能实现统计在线人数吗?

    2009-10-29 12:28:00
  • phpMyAdmin 2.10.2 配置方法

    2007-08-22 08:11:00
  • 解决mysql输入密码闪退的问题

    2024-01-21 02:29:14
  • python并发2之使用asyncio处理并发

    2022-01-11 23:41:28
  • GIt在pyCharm的详细使用教程记录

    2021-11-21 02:21:05
  • 对numpy中数组元素的统一赋值实例

    2021-05-31 18:47:37
  • asp如何在页面中实现对电子信箱的访问?

    2010-06-26 12:34:00
  • OpenCV2.3.1+Python2.7.3+Numpy等的配置解析

    2021-12-09 16:04:57
  • MySQL Server 层四个日志详解

    2024-01-18 12:12:59
  • Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)

    2024-04-22 22:33:33
  • Python 语句的表达式和缩进

    2023-11-26 18:28:24
  • mac安装mysql初始密码忘记怎么办

    2024-01-16 20:42:45
  • Python编程mac下使用pycharm小技巧

    2022-10-21 19:23:52
  • BigPipe:高性能的"流水线技术"网页

    2010-11-02 12:47:00
  • asp之家 网络编程 m.aspxhome.com