经过之前的慕课内容和b站上的一些知识内容的学习,决定制作一个2019中国最好医科大学的数据分析。
之前试着爬过其他的网站...一些爬出来的排版真的是逼疯我了= = 还有另一些网站自己就是图表形式的数据展示...
找网站着实费了那么一丢丢时间...
于是我就换了最好大学网。
(这多好看!)
首先通过以前的爬虫知识利用requests库和BeautifulSoup库,有选择的爬取学校名称和总分。
得到x,y轴数据之后然后再利用matplotlib库制作条形图。
import requests from bs4 import BeautifulSoup import bs4 import matplotlib.pyplot as plt url='http://www.zuihaodaxue.com/zuihaoyikedaxuepaiming2019.html' ulist=[] try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding message=r.text except: print('Error!') soup=BeautifulSoup(message,'html.parser') for tr in soup.find('tbody').children: if isinstance(tr,bs4.element.Tag): tds=tr('td') ulist.append([tds[1].string,tds[3].string]) x=[] y=[] for i in range(15): x.append(ulist[i][0]) y.append(ulist[i][1]) x.reverse() y.reverse() plt.barh(range(len(y)),y,tick_label=x,color='purple') plt.rcParams['font.sans-serif'] = ['STKaiTi'] plt.rcParams['axes.unicode_minus'] = False plt.title("中国最好医科大学排名2019") plt.show()
最后效果如上图。
本人水平有限,如有不足之处请老师同学多多指点。