DevWeekly/docs/7-pyhubweekly.md

7.8 KiB
Raw Permalink Blame History

前言

PyHubWeekly每周定期更新精选GitHub上优质的Python项目/小工具。

如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~

本期为大家推荐GitHub上5个优质的Python项目它们分别是

  • black
  • musicbox
  • nba_api
  • akshare
  • helium

下面分别来介绍一下上述5个GitHub项目。

black

Start14.9k

black是一款强大的Python代码格式化工具通过使用black可以解放双手再也不用手动调整代码格式了。

black参照PEP格式规范,它能够格式化字符串、消除空行、修改代码长度等。另外,相对于大多数代码格式化工具,它具有更加快速更见简便的优点,它能够让你在代码格式化方面节省更多时间和精力。

black的安装和使用也非常简单下面来简单的介绍一下。

安装

pip install black

使用

black {source_file_or_directory}

下面来举一个例子,来看一下它的效果。

示例代码

# test.py
j = [1,
     2,
     3
]



def hello():
    print("hello world")



class One:
    pass

在命令行下运行下面命令,

black test.py

然后,来看一下格式化后的效果,

j = [1, 2, 3]


def hello():
    print("hello world")


class One:
    pass

musicbox

Start8.1k

musicbox是Python实现的网易云音乐命令行版本支持320kbps的高品质音乐,当然,每日推荐、歌曲评论......这些功能也都支持,经常使用*nix系统系统的同学可以尝试一下。

安装

pip(3) install NetEase-MusicBox

使用

musicbox

img

目前已经通过测试支持的系统包括macOS、Ubuntu、Kali、CentOS、openSUSE、Fedora、Arch暂时不支持Windows。

nba_api

Start604

nba_api是一个访问NBA.com的API工具包。

通过使用nba_api可以轻松获取球员球队比赛信息,如果你对想做数据分析恰好又对NBA感兴趣那么可以尝试一下这款Python小工具。

安装

pip install nba_api

示例

from nba_api.stats.static import players
players.find_players_by_first_name('lebron')
# 输出
[{'id': 2544, 'full_name': 'LeBron James', 'first_name': 'LeBron', 'last_name': 'James', 'is_active': True}]

akshare

Start251

akshare是一个简单易用的金融数据接口库,实现了对股票、期货、期权、基金、外汇、债券、指数、数字货币等金融产品数据实时和历史数据、衍生数据采集、清洗、落地全流程的开源工具。

能够满足对数据分析师或者对金融感兴趣同学的需求,能够提供丰富的业务数据供开发、研究使用。

安装

pip install akshare  --upgrade

示例

import akshare as ak
ak.get_roll_yield_bar(type_method="date", var="RB", start_day="20180618", end_day="20180718", plot=True)

输出结果,

            roll_yield near_by deferred
2018-06-19    0.191289  RB1810   RB1901
2018-06-20    0.192123  RB1810   RB1901
2018-06-21    0.183304  RB1810   RB1901
2018-06-22    0.190642  RB1810   RB1901
2018-06-25    0.194838  RB1810   RB1901
2018-06-26    0.204314  RB1810   RB1901
2018-06-27    0.213667  RB1810   RB1901
2018-06-28    0.211701  RB1810   RB1901
2018-06-29    0.205892  RB1810   RB1901
2018-07-02    0.224809  RB1810   RB1901
2018-07-03    0.229198  RB1810   RB1901
2018-07-04    0.222853  RB1810   RB1901
2018-07-05    0.247187  RB1810   RB1901
2018-07-06    0.261259  RB1810   RB1901
2018-07-09    0.253283  RB1810   RB1901
2018-07-10    0.225832  RB1810   RB1901
2018-07-11    0.210659  RB1810   RB1901
2018-07-12    0.212805  RB1810   RB1901
2018-07-13    0.170282  RB1810   RB1901
2018-07-16    0.218066  RB1810   RB1901
2018-07-17    0.229768  RB1810   RB1901
2018-07-18    0.225529  RB1810   RB1901

helium

Start1k

终于到本文的重头戏了下面就来介绍一下Helium这款神器。

Helium是一款基于 Selenium实现的网页自动化工具,它能够解放你的双手,让你实现日常各种网页的使用。

废话不多说,来先看一个示例,应该就明白它到底是干什么用的。

from helium import *
start_chrome('google.com')
write('helium selenium github')
press(ENTER)
click('mherrmann/helium')
go_to('github.com/login')
write('username', into='Username')
write('password', into='Password')
click('Sign in')
kill_browser()

看一下具体的演示,

img

看了演示应该大概明白helium是干什么用的了它能够实现网页端的各种自动化操作例如

  • 启动浏览器
  • 与浏览器交互
  • 查找相关元素
  • 等待元素出现
  • ......

其中,较为常用的就是启动浏览器浏览器交互,启动浏览器应该都明白,不需要多说,这里就来介绍一下与浏览器交互。

helium能够输入内容、敲击键盘、点击按钮、跳转、关闭等各种我们日常访问网页时常用的操作。

回想一下我们平时浏览网页不也就是这些操作吗只是helium自动化实现了我们日常的操作。

也许看到这里很多同学还是认为,这有什么用啊?

我觉得这个可以发散一下思维,自己寻找一下应用场景,例如,

  • 批量下载音乐
  • 批量下载电影、电视剧
  • 下载图片
  • 快速填单
  • 便捷访问日常网址

举个例子,假如你日常的工作就是在网站填写表格或者处理订单等重复性的工作,那么就可以写一个脚本,然后循环同样一个动作,自己就不用动手操作了。


推荐阅读