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真的是很好玩 ,它功能 十分齐全 ,虽然操作上有点困难,但在仔细反复学习后 ,收获还是不小的
如有可以改进的地方,还请大家多多指正!