前言: 学到决策树预测球队输赢时,按照书中网址去下载数据集,无奈怎么也没下载成功。即使下载了excel文件也是破损的。咱可是学了python的银,那好吧,我就把它爬取下来。(资源在下面)

代码:

'''爬取《python数据挖掘入门与实践》提到的nba赛况https://www.basketball-reference.com/leagues/NBA_2014_games-october.html操作:编译.py后,使用save()方法即可
'''
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd
import numpy as npBASE_URL = 'https://www.basketball-reference.com/leagues/NBA_2014_games-{month}.html'
all_month = np.array(['october','november','december','january','february','march','april','may','june'])def get_content():list = []for i in range(len(all_month)):url = BASE_URL.format(month=all_month[i])print(url)html = urlopen(url).read()bsObj = BeautifulSoup(html,'lxml')rows = [dd for dd in bsObj.select('tbody tr')]#selectk()可以多重刷选for row in rows:cell = [i.text for i in row.find_all('td')]#对于每一个tr标签内也可以进行td标签筛选list.append(cell)return list#返回二维列表
#存储为scv格式
def save():file = open('D:\\Python\\PythonProject\\nba_decisiontree_test\\matches.csv','w')#地址要自己改list = get_content()df_data = pd.DataFrame(columns=[1,2,3,4,5,6,7,8,9] ,data=list)df_data.to_csv(file)print('done')

输出:

>>> save()
https://www.basketball-reference.com/leagues/NBA_2014_games-october.html
https://www.basketball-reference.com/leagues/NBA_2014_games-november.html
https://www.basketball-reference.com/leagues/NBA_2014_games-december.html
https://www.basketball-reference.com/leagues/NBA_2014_games-january.html
https://www.basketball-reference.com/leagues/NBA_2014_games-february.html
https://www.basketball-reference.com/leagues/NBA_2014_games-march.html
https://www.basketball-reference.com/leagues/NBA_2014_games-april.html
https://www.basketball-reference.com/leagues/NBA_2014_games-may.html
https://www.basketball-reference.com/leagues/NBA_2014_games-june.html
done

数据展示:

补充: 看到后面发现还有一份数据需要用,但是上面的代码却不能够用在这里。原因是球队排行的数据被注释掉了(查看网页源码可发现)。所以这里用到了正则表达式去获取注释。

代码:

'''#get_standing_data.py获取《python数据挖掘入门与实践》决策树nba球队预测的球队排行数据存储地址自行修改
'''
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd
import re#pattern = re.compile('<!--[\s\S]*?-->')#html注释的正则:<!--[\s\S]*?-->
pattern = re.compile('<tbody>[\s\S]*?</tbody>')#模仿html注释的正则
url = 'https://www.basketball-reference.com/leagues/NBA_2013_standings.html'
html = urlopen(url).read()
bsObj = BeautifulSoup(html,'lxml')
content = bsObj.find(id='all_expanded_standings').prettify()
match = re.search(pattern,content)
str_tbody = match.group()
html_tbody = BeautifulSoup(str_tbody,'lxml')#将str字符串传入获得html对象
list = []
for tr in html_tbody.find_all('tr'):rows = [td.text for td in tr.find_all('td')]list.append(rows)#转成csv格式
file = 'D:\\Python\\PythonProject\\nba_decisiontree_test\\standing.csv'#自行修改
df_data = pd.DataFrame(data=list)
df_data.to_csv(file)
print('done')

部分数据展示:

>>> df_data0      1      2      3      4      5     6     7   \
0               Miami Heat  66-16   37-4  29-12  41-11   25-5  14-4  12-6
1    Oklahoma City Thunder  60-22   34-7  26-15   21-9  39-13   7-3   8-2
2        San Antonio Spurs  58-24   35-6  23-18   25-5  33-19   8-2   9-1
3           Denver Nuggets  57-25   38-3  19-22  19-11  38-14   5-5  10-0
4     Los Angeles Clippers  56-26   32-9  24-17   21-9  35-17   7-3   8-2
5        Memphis Grizzlies  56-26   32-9  24-17   22-8  34-18   8-2   8-2
6          New York Knicks  54-28  31-10  23-18  37-15  17-13  10-6  12-6
7            Brooklyn Nets  49-33  26-15  23-18  36-16  13-17  11-5  13-5
8           Indiana Pacers  49-32  30-11  19-21  31-20  18-12  6-11  13-3
9    Golden State Warriors  47-35  28-13  19-22  19-11  28-24   7-3   5-5
10           Chicago Bulls  45-37  24-17  21-20  34-18  11-19  13-5   9-7
11         Houston Rockets  45-37  29-12  16-25   21-9  24-28   7-3   7-3
12      Los Angeles Lakers  45-37  29-12  16-25  17-13  28-24   6-4   6-4
13           Atlanta Hawks  44-38  25-16  19-22  29-23  15-15  7-11  11-7
14               Utah Jazz  43-39  30-11  13-28  17-13  26-26   5-5   5-5
15          Boston Celtics  41-40  27-13  14-27  27-24  14-16   7-9   8-9
16        Dallas Mavericks  41-41  24-17  17-24  17-13  24-28   5-5   6-4   

文件资源: 有用的话点个赞呗

链接:https://pan.baidu.com/s/1eUfa914 密码:5ptu

———关注我的公众号,一起学数据挖掘————

《python数据挖掘入门与实践》决策树预测nba数据集相关推荐

  1. Python数据挖掘入门与实践---用决策树预测获胜球队

    数据集来源:1.  2013-14 NBA Schedule and Results 2.2013年 NBA 赛季排名情况 参考书籍:<Python数据挖掘入门与实践> 1.加载数据集: ...

  2. 《python数据挖掘》和《python数据挖掘入门与实践》两本书读后感

    这些天花了很多时间来学习数据挖掘这门课程,有很多心得和感悟,所以写下这篇博客来表达自己读完这两本书的感受! 首先推荐大家通过这两本书来入门数据挖掘这个领域,python数据挖掘这本书较容易,还花了很大 ...

  3. Python数据挖掘入门与实践-OneR分类算法

    Python数据挖掘入门与实践-OneR分类算法 OneR算法 OneR算法是根据已有的数据中,具有相同特征值的个体最可能属于哪个类别进行分类. 在本例中,只需选区Iris是个特征中分类效果最好的一个 ...

  4. 改写《python数据挖掘入门与实践》第九章Gutenberg书籍下载代码

    @数据挖掘 改写<python数据挖掘入门与实践>第九章Gutenberg书籍下载代码 可能是gutenberg网站改版的缘故,随书附带的getdata.py代码执行会报错. 个人将其进行 ...

  5. python_tweets.json (python数据挖掘入门与实践数据集下载)

    最近在看python数据挖掘入门与实践一书,书不错,有个不好的地方是,书上所用的数据集,有几个测试数据在网上非常不好找 下面几个资源是我自己整理出来的,上传到CSDN,有需要的朋友可以下载 leagu ...

  6. Python数据挖掘入门与实践 第三章 用决策树预测获胜球队(一)pandas的数据预处理与决策树(Decision tree)

    作为一个NBA球迷,看到这一章还是挺激动的. 不过内容有点难,研究了半天... 要是赌球的,用这章的预测+凯利公式,是不是就能提升赢钱概率了? 数据预处理 回归书本内容,既然要分析,首先需要有数据: ...

  7. 数据挖掘入门读物《Python数据挖掘入门与实践》豆瓣评分[7.70]

    好书推荐.视频分享,公众号"读书ReadBook"与您一起进步 下载地址-- 1.点击阅读原文或者地址 https://ebooklist.mobi/2019/05/20/6465 ...

  8. Python数据挖掘入门与实践pdf

    下载地址:网盘下载 内容简介  · · · · · · 本书作为数据挖掘入门读物,介绍了数据挖掘的基础知识.基本工具和实践方法,通过循序渐进地讲解算法,带你轻松踏上数据挖掘之旅.本书采用理论与实践相结 ...

  9. Python数据挖掘入门与实践 彩图 pdf

    下载地址:网盘下载 内容简介  · · · · · · 本书作为数据挖掘入门读物,介绍了数据挖掘的基础知识.基本工具和实践方法,通过循序渐进地讲解算法,带你轻松踏上数据挖掘之旅.本书采用理论与实践相结 ...

最新文章

  1. 智能车声标定位相关算法优化
  2. 如何动态改变框架的大小[转]
  3. ActionScript 3.0 Step By Step系列(六):学对象事件模型,从点击按扭开始
  4. VS2015和QTcreator冲突解决办法
  5. 学习笔记_jquery(js)遍历页面标签
  6. 在HTML中插入JavaScript代码的方式
  7. ORA-04063: view DAILY.TMP_TBX_100_0_S4 有错误
  8. html搞笑注释,9个最有趣的代码注释
  9. 第七届蓝桥杯大赛个人赛省赛(软件类)真题4
  10. 替代密码的c语言程序,替代密码及置换密码的C语言实现.doc
  11. 实现平衡二叉排序树的各种算法(包括二叉树的递归遍历、非递归遍历)
  12. 常用的物理引擎,图形引擎
  13. vue3.0 案例小demo
  14. android 音效均衡器,App+1 | 不懂均衡器调校也能量身定制,无需折腾的 Android 音效提升工具...
  15. 计算机数据表示实验(HUST) 第2关:汉字机内码获取实验
  16. 苹果电脑mysql_MacBook 安装 MySQL 5.7.29(新手都看得懂的安装教程)
  17. CSS界面样式(悬浮在元素上时将鼠标改为小手)
  18. Access denied for user ''@'localhost' to database 'mysql‘’
  19. 苹果手机怎么设置新的id
  20. android7.0后台,安卓7.0带来一键清理后台 真能使手机变快吗

热门文章

  1. ios harmonyos,MIUI 13,IOS 15,鸿蒙OS系统 六月份齐上线,一文了解都有哪些升级与亮点...
  2. EasyExcel 使用
  3. php 时间戳 周几,php时间戳怎么转换星期
  4. 网页端封装生成app移动端,是开发者的热门趋势
  5. 小米显示器屏幕测试软件,小米9屏幕测试:没上2K屏,素质过关
  6. 【更新中】苹果自家的as汇编器的特色风格(与微软masm汇编器语言风格的不同)
  7. 为chrome书签栏中,没有默认图标的网站添加图标
  8. Python爬虫实战案例:爬取新闻资讯
  9. AndroidStudio开发软件
  10. 写了个静态的网页-模仿网易云