欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【效率工具】基于python爬虫的“nba对阵信息及数据统计信息查看“Alfred小工具

程序员文章站 2024-02-15 21:30:28
...

1.背景

每次都需要打开网页看nba消息,太繁琐了,利用mac端的效率神器Alfred,编写了一个python脚本爬取新浪nba的消息,敲一个命令就能展示出当天的nba对阵信息,回车一下直接跳转到数据统计的网页。

【效率工具】基于python爬虫的“nba对阵信息及数据统计信息查看“Alfred小工具

2.具体操作

alfred-nba

https://www.bilibili.com/video/BV1MC4y187tJ/

3.核心逻辑

from urllib import request, parse
import sys
import json
import copy
import time

def getNBA(  ):
    url = 'https://slamdunk.sports.sina.cn/api?p=radar&s=schedule&a=date_limit&order=-1&date=&_=' + str(time.time()*1000)

    response = getJsonFromUrl(url)  

    items = {"items": []}
    template = {
        "title": "",
        "subtitle": "",
        "arg": ""
    }

    for i in response['result']['data']['matchs']:
        url = 'https://slamdunk.sports.sina.cn/api?p=radar&s=boxscore&a=match&dpc=1&mid=' + i['mid']
        response1 = getJsonFromUrl( url )
        template["title"] = i['home_name'] + 'vs' + i['away_name'] + '=>' + str(i['home_score']) + ':' + str(i['away_score'])
        template["subtitle"] = '开始时间:' + i['date'] + '    ' + i['time'] + '  比赛状态:' + response1['result']['data']['time_str']
        template["arg"] = 'https://slamdunk.sports.sina.cn/nano/game?livetype=nba&matchid=' + response1['result']['data']['cmt_newsid'].split('-',)[2]
        items["items"].append(copy.deepcopy(template));
    jsonstr = json.dumps(items)
    print(jsonstr)  # 打印字符串就可以被alfred识别

def getJsonFromUrl ( url ):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/79.0.3945.88 Safari/537.36',
    }
    req = request.Request(url=url, method='GET', headers=headers)
    response = json.loads(request.urlopen(req).read().decode('utf-8')) 
    return response

if __name__ == '__main__':
    getNBA()

 

相关标签: 测试工程师