课程:《Python程序设计》
班级: 2011
姓名: 郑良奥
学号:20201116
实验教师:王志强
实验日期:2021年6月30日
必修/选修: 公选课
一、实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
本次实验内容:爬取nba20-21赛季常规赛得分榜前20名,并写入Excel表格中保存
二、实验过程及结果
1.获取网页内容
发起请求
r = requests.get(url, timeout=30)
状态
r.raise_for_status()
设置字符串
r.encoding = r.apparent_encoding
获取文本内容
r.text[:1000]
2.获取想要的数据
打开网页虎扑体育-NBA球员得分数据排行 第1页 (hupu.com)
摁CTRL+shift+c选择元素进行检查,复制元素的slector。
def fillPlayList(plist, html):
创建BeautifulSoup对象
soup = BeautifulSoup(html, "html.parser")
找到表格,拿到数据
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag):
获取td标签
tds = tr('td')
获取标签里的内容
plist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string])
3.将数据写入表格
打开表格
wb = openpyxl.Workbook()
ws = wb.active
设置行数
r = 1
定义存放数据的列表
p = []
循环,把数据存入列表
for i in range(num):
p.append(plist[i])
循环写入表格
for line in p:
for column in range(1, len(line) + 1):
ws.cell(row=r, column=column).value = line[column - 1]
r = r + 1
保存数据到表格
wb.save('nba得分榜前20.xlsx')
4.定义主方法
pinfo = []
网址
url = 'http://nba.hupu.com/stats/players'
调用getHTMLText获取网页内容
html = getHTMLText(url)
调用fillPlayList获取需要的数据
fillPlayList(pinfo, html)
保存数据到表格,前20
savePlayList(pinfo, 21)
3.运行结果
4.将代码push到码云
失败了,建不了仓库了
三、学习心得
在这一个学期的学习中,我感受的了python这门语言独特的魅力,作为一门高级语言。近年来python在编程上的用处越来越广泛,也有越来越多的人开始学习python。与c语言相比,他的简洁和便利令人印象深刻,给了编程者很大的*空间与方便,使代码得到了充分的简化。但是与c语言一样的是吗,要想学好python这门语言,也必须不停地敲代码,熟能生巧。
同时这门课程也锻炼的我的自学能力,就像王老师在第一节和最后一节课上反复说的那样“这门课学好了是自己努力学的好”,不只是这门课,大学里任意一门学科都需要同学们一定程度上的自学,这就要求我们充分利用自己的资源,还要合理安排自己的时间与计划。
最后还是要真诚地感谢老师一学期的精心指导,让我不仅学会了这一门课的知识,同时也教给了我平时学习的方法。