(B爬取与分析网页数据)根据url变量提供的网址,爬取网页中2021年中国大学排名信息
题目说明
根据url变量提供的网址,爬取网页中2021年中国大学排名信息,然后加工并显示前N名大学的排名、学校名称、省市、类型、总分、办学层次等五列信息。其中N由键盘输入。
其中北京大学显示如下图:
北京大学对应的html如下
<tr data-v-3fe7d390><td data-v-3fe7d390><div class="ranking top2" data-v-3fe7d390> 2 </div></td><td class="align-left" data-v-3fe7d390><div class="univname-container" data-v-3fe7d390><div class="logo" data-v-3fe7d390><img alt="北京大学" onerror='this.src="/images/blank.svg"' src="https://www.shanghairanking.cn/_uni/logo/86350223.png" class="univ-logo" data-v-3fe7d390></div> <div class="univname" data-v-3fe7d390><div data-v-b80b4d60 data-v-3fe7d390><div class="tooltip" data-v-b80b4d60><div class="link-container" data-v-b80b4d60><a href="/institution/peking-university" class="name-cn" data-v-b80b4d60>北京大学 </a> <div class="collection" style="display:none" data-v-b80b4d60><img src="/_nuxt/img/uncollection.5e124aa.svg" alt data-v-b80b4d60></div></div> <!----></div></div> <div data-v-f9104fdc data-v-3fe7d390><div class="tooltip" data-v-f9104fdc><div class="link-container" data-v-f9104fdc><a href="/institution/peking-university" class="name-en" data-v-f9104fdc>Peking University </a></div> <!----></div></div> <p class="tags" data-v-3fe7d390>双一流/985/211</p> <!----> <!----> <!----></div></div></td><td data-v-3fe7d390> 北京 <!----></td><td data-v-3fe7d390> 综合 <!----></td><td data-v-3fe7d390> 855.3 </td><td data-v-3fe7d390> 36.1 </td></tr>
样例输入
3
样例输出
1,清华大学TsinghuaUniversity一流大学A类/985/211,北京,综合,969.2,37.9 2,北京大学PekingUniversity一流大学A类/985/211,北京,综合,855.3,36.1 3,浙江大学ZhejiangUniversity一流大学A类/985/211,浙江,综合,768.7,34.3
样例输入
5
样例输出
1,清华大学TsinghuaUniversity一流大学A类/985/211,北京,综合,969.2,37.9 2,北京大学PekingUniversity一流大学A类/985/211,北京,综合,855.3,36.1 3,浙江大学ZhejiangUniversity一流大学A类/985/211,浙江,综合,768.7,34.3 4,上海交通大学ShanghaiJiaoTongUniversity一流大学A类/985/211,上海,综合,723.4,35.5 5,南京大学NanjingUniversity一流大学A类/985/211,江苏,654.8,35.1
参考代码
#coding=gbk import requests from bs4 import BeautifulSoup url = 'https://www.shanghairanking.cn/rankings/bcur/2021' """【""" page=requests.get(url) page.encoding='utf-8' html=page.text soup=BeautifulSoup(html,"html.parser") data=soup.find_all('td') n=int(input()) for i in range(n): str='' str+=data[i*6+0].text.replace(' ','').replace('\n','')+',' str+=data[i*6+1].text.replace(' ','').replace('\n','')+',' str+=data[i*6+2].text.replace(' ','').replace('\n','')+',' str+=data[i*6+3].text.replace(' ','').replace('\n','')+',' str+=data[i*6+4].text.replace(' ','').replace('\n','')+',' str+=data[i*6+5].text.replace(' ','').replace('\n','')+'\n' print(str,end='') """】"""