获取中国大学排名信息爬取
网址:最好大学网
相关库:bs4 、requests
相关知识点:format(汉语对齐)
from bs4 import BeautifulSoup
import re
import bs4
import requests
//获取html字符串
def get_url_text(url):
try:
//链接地址
r=requests.get(url)
//判断是否连接成功
r.raise_for_status()
//转换编码方式
r.encoding=r.apparent_encoding
//返回html字符串信息
return r.text
except:
return ""
//把html字符串转换成html格式,提取部分数据
def fill_univ_list(html,ulist):
//使用BeautifulSoup将html字符串转换成html格式
soup=BeautifulSoup(html,'html.parser')
//循环遍历tbody标签,获取其子节点标签内容
for tr in soup.tbody.children:
# 判断tr的类型是否为Tag,过滤掉非tr数据
if isinstance(tr,bs4.element.Tag):
# tr(‘td’)是tr.find_all('td')的缩写
tds=tr('td')
ulist.append([tds[0].string,tds[1].string,tds[4].string])
return ulist
//按格式打印输出
def print_ulist(ulist,n):
//{1:{3}^6}解释:1是学校名称字节不足时,填充3类型(chr(12288))汉字字符,^居中,6六个字符大小
print("{0:^10}\t{1:{3}^6}\t{2:>12}".format('排名','学校名称','评分',chr(12288)))
for i in range(n):
//>右对齐
print("{0:^10}\t{1:{3}^10}\t{2:>10}".format(ulist[i][0],ulist[i][1],ulist[i][2],chr(12288)))
if __name__=="__main__":
url='http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
html=get_url_text(url)
ulist=fill_univ_list(html,[])
//展示20条数据
print_ulist(ulist,20)