Python实例教程爬虫爬取NBA数据功能示例

来源:中文源码网    浏览: 次    日期:2018年8月30日

【下载文档:  Python实例教程爬虫爬取NBA数据功能示例.txt 】

(友情提示:右键点上行txt文档名->目标另存为)

Python实现爬虫爬取NBA数据功能示例 本文实例讲述了Python实现爬虫爬取NBA数据功能。分享给大家供大家参考,具体如下:

爬取的网站为:stat-nba.com,这里爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据

改变url_header和url_tail即可爬取特定的其他数据。

源代码如下:

#coding=utf-8

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

import requests

import time

import urllib

from bs4 import BeautifulSoup

import re

from pyExcelerator import *

def getURLLists(url_header,url_tail,pages):

"""

获取所有页面的URL列表

"""

url_lists = []

url_0 = url_header+'0'+url_tail

print url_0

url_lists.append(url_0)

for i in range(1,pages+1):

url_temp = url_header+str(i)+url_tail

url_lists.append(url_temp)

return url_lists

def getNBAAllData(url_lists):

"""

获取所有2017赛季NBA常规赛数据

"""

datasets = ['']

for item in url_lists:

data1 = getNBASingleData(item)

datasets.extend(data1)

#去掉数据里的空元素

for item in datasets[:]:

if len(item) == 0:

datasets.remove(item)

return datasets

def getNBASingleData(url):

"""

获取1个页面NBA常规赛数据

"""

# url = 'http://stat-nba.com/query_team.php?QueryType=game&order=1&crtcol=date_out&GameType=season&PageNum=3000&Season0=2016&Season1=2017'

# html = requests.get(url).text

html = urllib.urlopen(url).read()

# print html

soup = BeautifulSoup(html)

data = soup.html.body.find('tbody').text

list_data = data.split('\n')

# with open('nba_data.txt','a') as fp:

# fp.write(data)

# for item in list_data[:]:

# if len(item) == 0:

# list_data.remove(item)

return list_data

def saveDataToExcel(datasets,sheetname,filename):

book = Workbook()

sheet = book.add_sheet(sheetname)

sheet.write(0,0,u'序号')

sheet.write(0,1,u'球队')

sheet.write(0,2,u'时间')

sheet.write(0,3,u'结果')

sheet.write(0,4,u'主客')

sheet.write(0,5,u'比赛')

sheet.write(0,6,u'投篮命中率')

sheet.write(0,7,u'命中数')

sheet.write(0,8,u'出手数')

sheet.write(0,9,u'三分命中率')

sheet.write(0,10,u'三分命中数')

sheet.write(0,11,u'三分出手数')

sheet.write(0,12,u'罚球命中率')

sheet.write(0,13,u'罚球命中数')

sheet.write(0,14,u'罚球出手数')

sheet.write(0,15,u'篮板')

sheet.write(0,16,u'前场篮板')

sheet.write(0,17,u'后场篮板')

sheet.write(0,18,u'助攻')

sheet.write(0,19,u'抢断')

sheet.write(0,20,u'盖帽')

sheet.write(0,21,u'失误')

sheet.write(0,22,u'犯规')

sheet.write(0,23,u'得分')

num = 24

row_cnt = 0

data_cnt = 0

data_len = len(datasets)

print 'data_len:',data_len

while(data_cnt< data_len):

row_cnt += 1

print '序号:',row_cnt

for col in range(num):

# print col

sheet.write(row_cnt,col,datasets[data_cnt])

data_cnt += 1

book.save(filename)

def writeDataToTxt(datasets):

fp = open('nba_data.txt','w')

line_cnt = 1

for i in range(len(datasets)-1):

#球队名称对齐的操作:如果球队名字过短或者为76人队是 球队名字后面加两个table 否则加1个table

if line_cnt % 24 == 2 and len(datasets[i]) < 5 or datasets[i] == u'费城76人':

fp.write(datasets[i]+'\t\t')

else:

fp.write(datasets[i]+'\t')

line_cnt += 1

if line_cnt % 24 == 1:

fp.write('\n')

fp.close()

if __name__ == "__main__":

pages = int(1132/150)

url_header = 'http://stat-nba.com/query_team.php?page='

url_tail = '&QueryType=game&order=1&crtcol=date_out&GameType=season&PageNum=3000&Season0=2016&Season1=2017#label_show_result'

url_lists = getURLLists(url_header,url_tail,pages)

datasets = getNBAAllData(url_lists)

writeDataToTxt(datasets)

sheetname = 'nba normal data 2016-2017'

str_time = time.strftime('%Y-%m-%d',time.localtime(time.time()))

filename = 'nba_normal_data'+str_time+'.xls'

saveDataToExcel(datasets,sheetname,filename)更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

亲,试试微信扫码分享本页! *^_^*

python爬数据实例_Python实例教程爬虫爬取NBA数据功能示例相关推荐

  1. python和人工智能爬虫_Python 演示人工智能爬虫 抓取新浪微博数据

    时间:2019-04-10 概述:搜索爬虫 人工智能 一个Python 人工智能爬虫演示,本代码演示抓取新浪微博数据,若正在采集新浪微博数据,如需取消请按CTRL+C 退出程序. #!/usr/bin ...

  2. python 调整灰度图像对比度_Python实现PS图像调整之对比度调整功能示例

    本文实例讲述了Python实现PS图像调整之对比度调整功能.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 里的图像调整–对比度调整.具体的算法原理如下: (1).nRGB = R ...

  3. python线程同步锁_Python实现的多线程同步与互斥锁功能示例

    本文实例讲述了Python实现的多线程同步与互斥锁功能.分享给大家供大家参考,具体如下: #! /usr/bin/env python #coding=utf-8 import threading i ...

  4. python客户端与服务器端_Python实现的FTP通信客户端与服务器端功能示例

    本文实例讲述了Python实现的FTP通信客户端与服务器端功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端代码 import socket import threading import ...

  5. python3多线程第三方库_Python之多线程爬虫抓取网页图片的示例代码

    目标 嗯,我们知道搜索或浏览网站时会有很多精美.漂亮的图片. 我们下载的时候,得鼠标一个个下载,而且还翻页. 那么,有没有一种方法,可以使用非人工方式自动识别并下载图片.美美哒. 那么请使用pytho ...

  6. java爬虫抓取nba_利用Python爬虫爬取NBA数据功能实例分享

    Python实现爬虫爬取NBA数据功能示例 本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016- ...

  7. python爬网站数据实例-利用Python爬虫爬取NBA数据功能实例分享

    Python实现爬虫爬取NBA数据功能示例 本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016- ...

  8. python爬取率_Python实现爬虫爬取NBA数据功能示例

    本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据 ...

  9. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  10. 爬虫python下载视频_Python视频爬虫实现下载头条视频功能示例

    本文实例讲述了Python视频爬虫实现下载头条视频功能.分享给大家供大家参考,具体如下: 一.需求分析 抓取头条短视频 思路: 分析网页源码,查找解析出视频资源url(查看源代码,搜mp4) 对该ur ...

最新文章

  1. python测试开发自学教程-自动化平台测试开发- Python 测试开发实战
  2. Android SurfaceView实现静态于动态画图效果
  3. RT-Thread移植
  4. 环保公益PSD分层海报,小景合成美好世界
  5. UNIX下DNS服务器之创建篇(下)
  6. opengl linux windows,linux – 使用没有X-Window系统的OpenGL
  7. Java命名规范+常量定义方法
  8. MapReduce-实践1
  9. .net程序逆向之de4dot的使用
  10. 2022 XbotPark(冬季)科创训练营重庆明月湖站总结
  11. JAVA---集合子接口之Set
  12. java构造块与静态块
  13. java并发编程第十二课 java内存模型
  14. 一个Logo道出了DELL EMC存储的追求与梦想
  15. 机器人php接口,小I机器人接口[PHP版本 08.12.7]
  16. hduoj 一只小蜜蜂
  17. android 图片分析,Android ImageView圆形头像 图片完全解析
  18. CS入门学习笔记5-MIT 6.00.1x
  19. java网络加载协议JNLP的应用
  20. 【未来有约】清华学霸、沙县舞王…竟还是突破RPA天花板的人?

热门文章

  1. leetcode 1818 绝对差值和
  2. C语言用结构体实现串口协议
  3. html鼠标滑动响应,CSS鼠标响应事件经过、移动、点击示例介绍
  4. Android 获取屏幕高度、宽度
  5. 佳能微单R6断电DAT文件MP4视频完美修复不卡顿
  6. 阿里巴巴实习生招聘开始啦
  7. Windows 10 开启卓越性能模式
  8. css属性table
  9. 使用JS脚本抢腾讯云学生一元优惠券
  10. 基于MATLAB的列车防护曲线组合步长算法分析与仿真验证