爬取2020中国最好大学排名600强完整榜单(软科排名)的前十的大学排名及总分

话不多说,先上代码
(当然这段代码相信大家已经见过,但我修改了抓取的网页并又亲自敲了一遍,感受颇深,那我就详细讲解一下这段代码吧)

import requests #抓取网页必备库
from bs4 import BeautifulSoup #将网页信息整理并储存到列表的必备库
import bs4 #调用isinstance函数

def getHTMLText(url):#首先自定义这段函数为了爬取html网页的信息
     try:
         r=requests.get(url,timeout=30)#获取网页信息
         r.raise_for_status()
         r.encoding=r.apparent_encoding
         return r.text#返回网页信息
     except:
        return ''

def fillUnivList(ulist,html):#这个函数作用为将网页信息处理后并保存到列表中去
    soup=BeautifulSoup(html,"html.parser")#首先将网页信息用html解析器解析获取html格式信息
    for tr in soup.find('tbody').children:#然后遍历tbody标签里的子全部子标签(这里还包括字符串)
        if isinstance(tr,bs4.element.Tag):#这里就判断里面的tr标签是否为标签元素
            tds=tr('td')#然后就将tr标签中的所有td标签赋给tds列表,注意tr(‘td’)也就是tr.find_all('td')
            ulist.append([tds[0].string,tds[1].string,tds[4].string])#其实这里就是将列表tds的元素中的td标签的内容以一个元素加到ulist列表中,有点像二维数组

def pintUnivList(ulist,num):#这里就是遍历打印信息的函数
    tplt="{0:^10}\t{1:{3}^10}\t{2:^10}"#首先创建一个适合format的字符串,至于中间的{3}即为以format函数第三个参数为分隔距离,也就是chr(12288),表示以一个汉字大小的距离
    print(tplt.format("排名","学校名称","总分",chr(12288)))#这里就按坑填值了
    for i in range(num):#遍历打印信息
        u=ulist[i]
        print(tplt.format(u[0],u[1],u[2],chr(12288)))

def main():#创建一个主函数来调用以上三个函数
    uinfo=[]
    url='https://www.dxsbb.com/news/44368.html'
    html=getHTMLText(url)
    fillUnivList(uinfo,html)
    pintUnivList(uinfo,10)
main()
 

若有错误,欢迎大家来指点!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值