1、经过自己的学习,学会了网络爬虫和数据分析,虽然学的不是太好,但是能基本做出个样子来。
2、由于本人是一个篮球迷,我选择将NBA历史总得分榜进行爬取并进行数据分析。找网站是一个非常难得事情,试过多个网站都没成功,于是我借鉴了其他同学使用的网站,终于找到了一个专门进行排名的网站“排行榜”
3、代码如下
import requests
from bs4 import BeautifulSoup
url='https://sports.phb123.com/nba/31999.html'
r=requests.get(url)
try:
r.raise_for_status()
r.encoding=r.apparent_encoding
data=r.text
except:
print('ERROR')
soup=BeautifulSoup(data,'html.parser')
a=soup.find_all('p')
for i in range(6,20):
print(a[i].get_text())
import matplotlib.pyplot as plt
list_1=['卡里姆·阿卜杜勒-贾巴尔','卡尔·马龙','科比·布莱恩特','迈克尔·乔丹','勒布朗·詹姆斯','威尔特·张伯伦','德克·诺维斯基','沙奎尔·奥尼尔','摩西·马龙','埃尔文·海耶斯'']
list_2=['38387','36928','33643','32292','32162','31419','31419''28596','27409','27313']
x=[]
y=[]
for i in range(9):
y.append(list_1[i])
x.append(list_2[i])
x.reverse()
y.reverse()
plt.barh(range(len(y)),y,tick_label=x,color='blue')
plt.rcParams['font.sans-serif'] = ['STKaiTi']
plt.rcParams['axes.unicode_minus'] = False
plt.title("NBA历史总得分排行榜")
plt.show()
4、结果
发现横坐标人名有重叠,与时尚网查询,使用了
fig = plt.figure(figsize=(12,4)) # 设置画布大小 结果如下:
5、总结
询问了赖宜霖、牛一鸣,并找到了合适的爬虫网站,python真的是很好玩 ,它功能 十分齐全 ,虽然操作上有点困难,但在仔细反复学习后 ,收获还是不小的
如有可以改进的地方,还请大家多多指正!