基于python中requests库抓取nba比赛实时比分

  1. 首先总结下json用法,参考资料为:

https://www.cnblogs.com/xiaomingzaixian/p/7286793.html

 

  1. json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
    (1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
    (2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)

 

 

下面开始进入正题,数据源来自腾讯nba

  1. 进入该网址 http://nba.stats.qq.com/schedule/

http://nba.stats.qq.com/schedule/

鼠标右击->检查元素(或直接按F12),选择network->js,如下所示

 

2.在Name下面查找到比分数据信息,点击Response查找后台数据

3然后在其Headers中获取其请求url,复制该url

4.下面开始编写代码

#coding='utf-8'
import requests
from prettytable import PrettyTable
import datetime
import json

def getMatch():
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    }
    today = datetime.datetime.now().strftime('%Y-%m-%d')  #获得当天日期 如2018-10-26
    # 将上述中复制的url粘贴于此,需要做一些日期上的修改,如下把起止日期都改为今天
    url = "http://matchweb.sports.qq.com/kbs/list?from=NBA_PC&columnId=100000&startTime={0}&endTime={1}&callback=ajaxExec&_=1540442149442".format(today, today)     #   http://nba.stats.qq.com/schedule/
    web_data = requests.get(url, headers=header)
    web_data.encoding = 'utf-8'
    #print(web_data.text)
    #print(type(web_data))
    datas = json.loads(web_data.text[9:-1])  # dumps是将dict转化成str格式,loads是将str转化成dict格式。
    todaydata = datas['data'][today]
    pt = PrettyTable()
    pt._set_field_names(('leftEnName rightEnName leftGoal rightGoal quarter quarterTime startTime').split(' '))
    for one in todaydata:
        #print(one)
        rightEnName = one['rightEnName']             # rightName
        leftEnName = one['leftEnName']   # leftName
        leftGoal = one['leftGoal']
        rightGoal = one['rightGoal']
        starttime = one['startTime']  # 开始时间
        quarter = one['quarter'][1:2] # 第几节
        quartertime = one['quarterTime']  # 每一节剩余时间
        pt.add_row([leftEnName, rightEnName, leftGoal, rightGoal, quarter, quartertime, starttime])
    print(pt)
    
# 主函数
if __name__ == "__main__":
getMatch()

5.运行结果如下

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值