博客
关于我
爬虫(5)—— 获取中国大学排名
阅读量:332 次
发布时间:2019-03-04

本文共 1519 字,大约阅读时间需要 5 分钟。

爬虫案例视频讲解

功能描述

输入:大学排名url链接

输出:大学排名信息的屏幕输出(排名、大学、总分)

技术路线:requests、bs4

定向爬虫:仅对输入url进行爬取,不扩展爬取


程序结构设计

步骤1:从网络上获取大学排名网页内容

函数getHTMLText(url)

  • 使用requests库发送GET请求,获取指定url的网页内容
  • 设置请求超时为30秒,确保网络请求可靠
  • 指定编码方式,避免字符编码问题
  • 返回获取到的网页内容

步骤2:提取网页内容中信息到合适的数据结构

函数fillUnivList(ulist, html)

  • 使用BeautifulSoup解析网页内容
  • 定位到<tbody>标签,筛选出大学排名信息
  • 遍历每一行<tr>,提取每行的<td>标签内容
  • 将提取到的信息存储到ulist数据结构中

步骤3:利用数据结构展示并输出结果

函数printUnivList(ulist, num)

  • 打印表头,确保排名、学校名称、总分对齐一致
  • 根据指定的num,输出前num名大学排名信息

完整代码

import requestsfrom bs4 import BeautifulSoupdef getHTMLText(url):    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')    for tr in soup.find('tbody').children:        if isinstance(tr, BeautifulSoup.element.Tag):            tds = tr.find_all('td')            if tds:                ulist.append([tds[0].string, tds[1].string, tds[2].string])def printUnivList(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)))def main():    uinfo = []    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html'    html = getHTMLText(url)    fillUnivList(uinfo, html)    printUnivList(uinfo, 20)if __name__ == "__main__":    main()

中英文对齐问题

本案例的核心逻辑是从指定url获取大学排名页面内容,提取排名、学校名称和总分信息,存储到数据结构中,最后按格式输出结果。代码逻辑清晰,注重数据处理的细节,确保爬取的内容准确无误。

转载地址:http://bsgh.baihongyu.com/

你可能感兴趣的文章
vue 不常见操作
查看>>
jQuery的事件绑定与触发 - 学习笔记
查看>>
Python处理接口测试的签名
查看>>
测试流程规范--测试报告模板
查看>>
Linux上TCP的几个内核参数调优
查看>>
记一次讲故事机器人的开发-我有故事,让机器人来读
查看>>
高德算法工程一体化实践和思考
查看>>
重温网络编程——常识(三)
查看>>
判断一个数是否是2的幂
查看>>
js 闭包(新)
查看>>
vscode 编辑python 如何格式化
查看>>
seo 回忆录百度基本概念(一)
查看>>
重新整理数据结构与算法(c#)—— 算法套路二分法[二十四]
查看>>
kettle 执行 kjb 临时文件夹 /tmp permission denied 问题
查看>>
用ThreadLocal来优化下代码吧
查看>>
netcore中使用session
查看>>
Android 开发学习进程0.25 自定义控件
查看>>
多媒体文件格式全解说(下)--图片
查看>>
淘宝WAP版小BUG分析
查看>>
NodeJS+Express+MongoDB
查看>>