GitHub 给了开发者相当丰富的 API 接口 https://developer.github.com/v3/,包括认证,搜索,活动等接口,但就是没有提供获取 Trending 的接口。因此,需要自己来实现这个api

Github地址: https://github.com/ngauerh/GithubTrendingApi (求个star),一下请求方式均为get请求。

获取热门项目

请求地址: http://132.232.132.144:8009/api

请求结果:

{
"success": true,
"count": ,
"msg": [
{
# 仓库名称
"repo": "Librefox",
# 项目语言
"language": "JavaScript",
# 项目拥有着
"user": "intika",
# 项目简介
"about": "Librefox: Firefox with privacy enhancements",
# 项目地址
"link": "https://github.com/intika/Librefox",
# 项目star数
"stars": "",
# 项目fork数
"forks": "",
# 新增star数
"new_stars": "117 stars today",
# 项目维护者头像地址
"avatars": [
"https://avatars2.githubusercontent.com/u/6892180?s=40&v=4",
"https://avatars0.githubusercontent.com/u/152493?s=40&v=4",
"https://avatars3.githubusercontent.com/u/2353785?s=40&v=4",
"https://avatars3.githubusercontent.com/u/38463143?s=40&v=4"
]
},
...

获取热门开发者

请求地址 http://132.232.132.144:8009/api/developers

{
success: true,
count: ,
msg: [
{
# 开发者用户名
username: "thunlp (THUNLP)",
# 开发者头像
avatar: "https://avatars1.githubusercontent.com/u/18389035?s=96&v=4",
# 开发者主页
userlink: "https://github.com/thunlp",
# 开发者热门项目
repo: "NRLPapers",
# 热门项目简介
repo_about: "Must-read papers on network representation learning (NRL) / network embedding (NE)"
},

获取某种语言或开发者在某段时间内的trending

请求路径

  http://132.232.132.144:8009/api?lang=python&since=daily

  http://132.232.132.144:8009/api/developers?lang=python&since=daily

请求参数:

  • lang 语言, 参数来自config.py中的 GithubLanguages

  • since 日期,参数有 daily,weekly, monthly
    daily 每天     weekly 每周   monthly 每月

获取GitHub上的所有trending 语言。

请求地址: http://132.232.132.144:8009/api/languages

返回结果:

{
"success": true,
"count": ,
"msg": [
"Zimpl",
"Zephir",
"YASnippet",
"YARA",
"YANG",
"YAML",
"Yacc",
"Xtend",
"XSLT",
"XS",
...

请求出错

当请求的lang或since不存在时,请求出错。错误结果为:

{
"success": false,
"count": ,
"msg": "请求错误"
}

安装项目代码

1.  git clone https://github.com/ngauerh/GithubTrendingApi.git

2.  pip install -r requirements.txt

3 . 修改config.py 文件

   GithubLanguages:要抓取的语言(在http://132.232.132.144:8009/api/languages里进行选择)

  SinceDate: 不能更改

   DB:  数据库配置

   SERVER_PORT:  要运行的api服务的端口号

  CRAWL_INTERVAL:  抓取间隔时间(实际间隔时间会曾经一个多小时)

4.  运行models.py 生成数据表(数据库格式需要为utf8mb4,如果格式为utf8则数据存入时会出错)

5.  运行run.py

用python写一个GitHub Trending Api的更多相关文章

  1. 【Python】如何基于Python写一个TCP反向连接后门

    首发安全客 如何基于Python写一个TCP反向连接后门 https://www.anquanke.com/post/id/92401 0x0 介绍 在Linux系统做未授权测试,我们须准备一个安全的 ...

  2. Python写一个自动点餐程序

    Python写一个自动点餐程序 为什么要写这个 公司现在用meican作为点餐渠道,每天规定的时间是早7:00-9:40点餐,有时候我经常容易忘记,或者是在地铁/公交上没办法点餐,所以总是没饭吃,只有 ...

  3. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  4. 十行代码--用python写一个USB病毒 (知乎 DeepWeaver)

    昨天在上厕所的时候突发奇想,当你把usb插进去的时候,能不能自动执行usb上的程序.查了一下,发现只有windows上可以,具体的大家也可以搜索(搜索关键词usb autorun)到.但是,如果我想, ...

  5. [py]python写一个通讯录step by step V3.0

    python写一个通讯录step by step V3.0 参考: http://blog.51cto.com/lovelace/1631831 更新功能: 数据库进行数据存入和读取操作 字典配合函数 ...

  6. 用python写一个自动化盲注脚本

    前言 当我们进行SQL注入攻击时,当发现无法进行union注入或者报错等注入,那么,就需要考虑盲注了,当我们进行盲注时,需要通过页面的反馈(布尔盲注)或者相应时间(时间盲注),来一个字符一个字符的进行 ...

  7. python写一个能变身电光耗子的贪吃蛇

    python写一个不同的贪吃蛇 写这篇文章是因为最近课太多,没有精力去挖洞,记录一下学习中的收获,python那么好玩就写一个大一没有完成的贪吃蛇(主要还是跟课程有关o(╥﹏╥)o,课太多好烦) 第一 ...

  8. python写一个邮箱伪造脚本

    前言: 原本打算学php MVC的思路然后写一个项目.但是贼恶心, 写不出来.然后就还是用python写了个邮箱伪造. 0x01 第一步先去搜狐注册一个邮箱 然后,点开设置,开启SMTP服务. 当然你 ...

  9. 如何Python写一个安卓APP

    前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...

随机推荐

  1. jquery封装的方法

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  2. 怎样获取全局对象 window

    1. 使用window.self window.self === window; // true 2. 使用window.window window.window === window; // tru ...

  3. pymysql操作mysql数据库

    1.建库 import pymysql # 建库 try: conn=pymysql.connect( host='127.0.0.1', port=3306, user='root', passwd ...

  4. 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用

    2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Dri ...

  5. Installation Manager1.8安装

    1.下载地址: https://www-01.ibm.com/marketing/iwm/iwm/web/download.do?S_PKG=500005026&source=swerpws- ...

  6. 关于unity中的update、Lateupdate和FixedUpdate

    MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. MonoBehaviour.FixedUpdate 固定更新 当MonoBehavi ...

  7. http接口测试工具-Advanced-REST-client

    非常好用的http接口测试工具 相信作为一个java开发人员,大家或多或少的要写或者接触一些http接口.而当我们需要本地调试接口常常会因为没有一款好用的工具而烦恼.今天要给大家介绍一款非常好用.实用 ...

  8. Visual Studio(Year)编辑器调试在IIS发布的Web程序出现错误的解决

    如下图所示:

  9. charles 手机抓包设置

    本文参考:charles 抓包手机 charles经常会进行手机上的网页抓包,比如去copy别人网站图片或脚本的时候o(∩_∩)o : 手机抓包的原理,和PC类似,手机依靠charles与服务端进行对 ...

  10. Crossover 19(Mac运行Windows应用程序)

    怎样才能在Mac上运行Windows应用程序?相信这是很多朋友都在问的问题,今天macdown(mac软件平台)小编为大家带来Crossover 19 Mac版下载,Crossover 19 mac版 ...