#-*- coding:utf-8 -*-
#-Author-= JamesBen
#Email: 1597757775@qq.com
import requests
from bs4 import BeautifulSoup
import bs4
#定义第一个函数得到网页源代码,并且可以进行稳定的运行
def Get_HTML(url):
try :
use = {'User-Agent': 'Mozilla/5.0'} #此行代码骗过服务器我们是使用浏览器进行访问的,防止有些网站对我们进行拦截
r = requests.get(url, timeout = 30,headers = use)
r.raise_for_status() #如果状态不是200引发HTTPError异常
r.encoding = r.apparent_encoding #将文本的编辑方式传给头,防止造成编码错路出现乱码
return r.text
except :
return "产生异常"
#定义一个函数得到特定的tr标签
def U_list(ulist,html):
soup = BeautifulSoup(html,"html.parser")
for tr in soup.find("tbody").children:
if isinstance(tr,bs4.element.Tag): #筛选tr标签的类型,如果不是Tag定义的类型将过滤掉
tds = tr("td")
ulist.append([tds[0].string,tds[1].string,tds[3].string])
pass
#格式化输出函数
def print_Univlist(ulist,num):
tplt="{0:^10}\t{1:{3}^10}\t{2:^10}"
print(tplt.format("排名","学校名称","总分",chr(12288)))
for i in range(num):
u=ulist[i]
print(tplt.format(u[0],u[1],u[2],chr(12288)))
print("Suc"+str(num))
def main():
uinfo = []
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
html = Get_HTML(url)
U_list( uinfo,html)
print_Univlist( uinfo,20)
if __name__ == "__main__":
main()