博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-实现简单爬取大学排名
阅读量:3772 次
发布时间:2019-05-22

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

一、实现功能

(仅适合教育目的爬取)从http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html获取大学排名,显示出来。

二、获取解析

通过浏览器访问该网址,右击网页,查看获取信息。使用的解析方法有多种,一种使用BeautifulSoup库,一种使用正则表达式直接匹配出来。我们这里使用BeautifulSoup。

会发现主要内容在tbody下面,td对应值。
在这里插入图片描述

清华大学
北京市95.9100.097.90%373421.2981177109113771111875935222
北京大学

在这里插入图片描述

三、源码

import requestsimport bs4  #pip3 install Beautifulsoup4 from bs4 import BeautifulSoup def getHTMLTesxt(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:   #1.先找到tbody标签        if isinstance(tr, bs4.element.Tag):  #判断tr的类型是bs4.element.Tag            tds = tr('td')                   #2.从该标签下查找,0对应排名,1对应学校,2对应地区,3对应总分            uList.append([tds[0].string, tds[1].string, tds[3].string])def printUnivList(uList, num):    #tplt = "{:^10}\t{:^6}\t{:^10}"    tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"#优化中文对齐1    print(tplt.format("排名", "学校名称", "总分", chr(12288)))    for i in range(num):        u = uList[i]        print("{:^10}\t{:^10}\t{:^10}".format(u[0], u[1], u[2]))def main():    uInfo = []    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html'    html = getHTMLTesxt(url)    fillUnivList(uInfo, html)    printUnivList(uInfo, 20)    print("-------------------")main()

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

你可能感兴趣的文章
2021北京交通大学计算机专硕复试经验分享
查看>>
简单实现一个数组、链表
查看>>
关于从其他程序切回word文档时卡顿问题的解决办法
查看>>
Linux安装Java环境
查看>>
Java集合 ArrayList原理
查看>>
Git的基本操作
查看>>
简述128陷阱
查看>>
在spring boot项目中修改包名要注意的一些问题
查看>>
编写类实现从后台向前台返回所要求的数据
查看>>
spring boot的学习(1.创建一个初始的spring boot项目)
查看>>
Python的入门学习
查看>>
⑤mpvue 小程序框架 :初始化项目 分析项目结构
查看>>
⑦mpvue Flyio实现前后台交互
查看>>
操作系统:Java模拟CPU调度算法(非抢占短进程优先、可抢占优先权调度、多级反馈队列调度)
查看>>
【前端】在页面中还原英雄联盟客户端?
查看>>
【前端】Vue 纯干货 基础知识分享!
查看>>
3.1servlet入门和MVC模型
查看>>
3.2servlet功能和会话技术
查看>>
泛型详解
查看>>
集合案例:斗地主
查看>>