#-*- coding:utf-8 -*- #-Author-= JamesBen #Email: [email protected] 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()
原文地址:https://www.cnblogs.com/James-Ben/p/12301783.html
时间: 2024-11-05 10:31:59