python爬数据实例_Python实例教程爬虫爬取NBA数据功能示例
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数据功能示例相关推荐
- python和人工智能爬虫_Python 演示人工智能爬虫 抓取新浪微博数据
时间:2019-04-10 概述:搜索爬虫 人工智能 一个Python 人工智能爬虫演示,本代码演示抓取新浪微博数据,若正在采集新浪微博数据,如需取消请按CTRL+C 退出程序. #!/usr/bin ...
- python 调整灰度图像对比度_Python实现PS图像调整之对比度调整功能示例
本文实例讲述了Python实现PS图像调整之对比度调整功能.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 里的图像调整–对比度调整.具体的算法原理如下: (1).nRGB = R ...
- python线程同步锁_Python实现的多线程同步与互斥锁功能示例
本文实例讲述了Python实现的多线程同步与互斥锁功能.分享给大家供大家参考,具体如下: #! /usr/bin/env python #coding=utf-8 import threading i ...
- python客户端与服务器端_Python实现的FTP通信客户端与服务器端功能示例
本文实例讲述了Python实现的FTP通信客户端与服务器端功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端代码 import socket import threading import ...
- python3多线程第三方库_Python之多线程爬虫抓取网页图片的示例代码
目标 嗯,我们知道搜索或浏览网站时会有很多精美.漂亮的图片. 我们下载的时候,得鼠标一个个下载,而且还翻页. 那么,有没有一种方法,可以使用非人工方式自动识别并下载图片.美美哒. 那么请使用pytho ...
- java爬虫抓取nba_利用Python爬虫爬取NBA数据功能实例分享
Python实现爬虫爬取NBA数据功能示例 本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016- ...
- python爬网站数据实例-利用Python爬虫爬取NBA数据功能实例分享
Python实现爬虫爬取NBA数据功能示例 本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016- ...
- python爬取率_Python实现爬虫爬取NBA数据功能示例
本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据 ...
- 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据
Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...
- 爬虫python下载视频_Python视频爬虫实现下载头条视频功能示例
本文实例讲述了Python视频爬虫实现下载头条视频功能.分享给大家供大家参考,具体如下: 一.需求分析 抓取头条短视频 思路: 分析网页源码,查找解析出视频资源url(查看源代码,搜mp4) 对该ur ...
最新文章
- python测试开发自学教程-自动化平台测试开发- Python 测试开发实战
- Android SurfaceView实现静态于动态画图效果
- RT-Thread移植
- 环保公益PSD分层海报,小景合成美好世界
- UNIX下DNS服务器之创建篇(下)
- opengl linux windows,linux – 使用没有X-Window系统的OpenGL
- Java命名规范+常量定义方法
- MapReduce-实践1
- .net程序逆向之de4dot的使用
- 2022 XbotPark(冬季)科创训练营重庆明月湖站总结
- JAVA---集合子接口之Set
- java构造块与静态块
- java并发编程第十二课 java内存模型
- 一个Logo道出了DELL EMC存储的追求与梦想
- 机器人php接口,小I机器人接口[PHP版本 08.12.7]
- hduoj 一只小蜜蜂
- android 图片分析,Android ImageView圆形头像 图片完全解析
- CS入门学习笔记5-MIT 6.00.1x
- java网络加载协议JNLP的应用
- 【未来有约】清华学霸、沙县舞王…竟还是突破RPA天花板的人?