python 爬取中国大学排名笔记

所有笔记内容均来源于 爱课程 的北京理工大学嵩天教授课程,版权归属于嵩天老师所有。

import requests # 导入网页爬取库
from bs4 import BeautifulSoup #导入html解析库
import bs4 
 
def getHTMLText(url): # 定义函数
    try:
        r = requests.get(url, timeout=30) #网页访问请求,超时30
        r.raise_for_status()#查询访问状态是否异常,异常直接进入except部分进行处理
        r.encoding = r.apparent_encoding #把编码改为可以使用户读懂的编码
        return r.text #返回获取的内容
    except:
        return ""
 
def fillUnivList(ulist, html): #对网页内容进行解析
    soup = BeautifulSoup(html, "html.parser") #获取html的标签
    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[2].string, tds[3].string])
 
def printUnivList(ulist, num): # 对输出数据进行格式控制打印
    tplt = "{0:^10}\t{1:{4}^10}\t{2:{4}^10}\t{3:^10}" # 0,1,2,3,4对应格式控制符后面的变量顺序,10对应输出字符宽度。{1:{4}^10},{4}代表中文空格,表示学校名称中对齐填充的宽度以中文空格对齐
    print(tplt.format("排名","学校名称","省份","总分",chr(12288)))
    for i in range(num):
        u=ulist[i]
        print(tplt.format(u[0],u[1],u[2],u[3],chr(12288)))
     
def main():
    uinfo = []
    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'
    html = getHTMLText(url)
    fillUnivList(uinfo, html)
    printUnivList(uinfo, 20) # 20 univs
main()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值