Python之爬虫-中国大学排名


#!/usr/bin/env python
# coding: utf-8 import bs4
import requests
from bs4 import BeautifulSoup # 通过传入网址信息创建一个获取网页文本的函数
def getHTMLText(url):
# 判断获取网页文本过程中是否有错误
try:
# 打开网址获取文本,并且把延迟设置成30s
r = requests.get(url, timeout=30)
# 获取状态码
r.raise_for_status()
# 设置文件编码
r.encoding = r.apparent_encoding
# 如果成功返回网页文本
return r.text
except:
# 获取网页文本有错误则返回空文本
return "" # 通过传入空列表和网页文本信息创建一个在大学列表中加入大学信息的函数
def fillUnivList(ulist, html):
# 用BeautifulSoup将网页文本以’html.parser‘煮成一锅粥
soup = BeautifulSoup(html, "html.parser")
# 通过网页源代码我们可以发现我们需要的信息都在tbody标签内,因此我们循环找出’tbody‘标签及其子标签的内容
for tr in soup.find('tbody').children:
# 通过bs4.element.Tag判断是否为tr标签
if isinstance(tr, bs4.element.Tag):
# 对于tr标签的我们拿到tr标签里的td标签
tds = tr('td')
# [<td>1</td>, <td><div align="left">清华大学</div></td>, <td>北京</td>, <td>95.3</td>...
# 我们通过筛选出我们需要的td标签中的文本并将其用列表的方式加入我们传入的列表ulist中
ulist.append([tds[0].string, tds[1].string,
tds[2].string, tds[3].string]) # 通过传入学校列表信息创建一个打印大学列表的函数
def printUnivList(ulist,province):
# 打印标题
print("中国最好大学排名2018({}地区)".center(45, '-').format(province))
# 设置一个format格式化的模板
# 注意:这里的{4}是因为utf8格式的英文和中文字节数不同,python会自动用英文来填
tplt = "{0:^10}\t{1:{4}^10}\t{2:^10}\t{3:^10}"
# 充空白位置,我们用chr(12288)将其修改成用中文填充空白位置
# 打印第一行
print(tplt.format("排名", "学校名称", "地区", "总分", chr(12288)))
if province == '安徽':
print(tplt.format(1, '安徽师范大学花津校区', '安徽', 99.9, chr(12288)))
# 循环取出列表中的每一所大学的信息,取出的大学信息是列表的形式(可以控制range(len(ulist))的长度来控制想要打印的学校的数量)
for i in range(len(ulist)):
# 将每一所大学的信息以列表的形式赋值给u
u = ulist[i]
# u[2]是地区,判断是否为安徽地区(可以自己更改地区信息,如果删除该判断,打印所有学校信息,也可以更改判断条件)
if u[2] == province:
# 如果为安徽地区,我们打印属于安徽地区的每一所大学的信息
print(tplt.format(u[0], u[1], u[2], u[3], chr(12288))) # 创建一个运行函数
def main(province='安徽'):
# 创建一个空列表,为填充大学信息列表做准备
uinfo = []
# 定义一个想要爬取的网页
url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2018.html'
# 传入想要爬取的网页获取该网页文本信息
html = getHTMLText(url)
# 给填充大学信息函数传值
fillUnivList(uinfo, html)
# 给打印大学信息函数传值
printUnivList(uinfo,province=province) main()
# main(province='北京')

Python之爬虫-中国大学排名的更多相关文章

  1. python网络爬虫-中国大学排名定向爬虫

    爬虫定向爬取中国大学排名信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup import bs4 #从网络上获取大学 ...

  2. python爬取中国大学排名

    教程来自:[Python网络爬虫与信息提取].MOOC. 北京理工大学 目标:爬取最好大学网前50名大学 代码如下: import requests from bs4 import Beautiful ...

  3. python爬虫学习心得:中国大学排名(附代码)

    今天下午花时间学习了python爬虫的中国大学排名实例,颇有心得,于是在博客园与各位分享 首先直接搬代码: import requests from bs4 import BeautifulSoup ...

  4. 【python】下载中国大学MOOC的视频

    [python]下载中国大学MOOC的视频 脚本目标: 输入课程id和cookie下载整个课程的视频文件,方便复习时候看 网站的反爬机制分析: 分析数据包的目的:找到获取m3u8文件的路径 1. 从第 ...

  5. Python 中国大学排名定向爬虫

    代码来自于中国大学Mooc北京理工大学Pythont教学团队:https://www.icourse163.org/learn/BIT-1001870001#/learn/content?type=d ...

  6. python爬虫入门---第二篇:获取2019年中国大学排名

    我们需要爬取的网站:最好大学网 我们需要爬取的内容即为该网页中的表格部分: 该部分的html关键代码为: 其中整个表的标签为<tbody>标签,每行的标签为<tr>标签,每行中 ...

  7. Python 爬虫-获得大学排名

    2017-07-29 23:20:24 主要技术路线:requests+bs4+格式化输出 import requests from bs4 import BeautifulSoup url = 'h ...

  8. Python网络爬虫与信息提取

    1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...

  9. 第三次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 第一周 Requests库的爬 ...

随机推荐

  1. Uix Kit 快速建站前端开发套件-工具箱

    这个产品维护已经有一年了(由于业务需求不同,目前没有做中文版,产品本身是针对国外网站),自己本身是做UI出生,开发只是业余爱好,仅仅作为平时工作的需要.杂七杂八会一些前后端开发.并非职业码农! 我是一 ...

  2. JDK与JRE、JVM三者间的关系及JDK的安装部署

    JDK与JRE.JVM三者间的关系及JDK的安装部署 一.JDK与JRE.JVM三者间的关系 JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了 ...

  3. Light oj 1002 Country Roads (Dijkstra)

    题目连接: http://www.lightoj.com/volume_showproblem.php?problem=1002 题目描述: 有n个城市,从0到n-1开始编号,n个城市之间有m条边,中 ...

  4. dalvik.system.VMRuntime 隐藏api的迷惑

    [Android UI界面]关于dalvik.system.VMRuntime 的 使用迷惑 我也遇到了相同问题.不知楼主现在解决了没有? 回答1: [Android UI界面]关于dalvik.sy ...

  5. MYSQL5.7 忘记ROOT密码/初始化ROOT密码

    编辑my.cnf允许空密码登录 [root@7Core ~]# vi /etc/my.cnf #在[mysqld]下加入一行 skip-grant-tables=1 重新启动Mysql服务 [root ...

  6. JS操作CSS

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. BootStrap Select2组件

    想使用Select2组件必须引用:select2.min.css和select2.min.js两个文件:如下: 页面写法很简单: 在这里多选是没有搜索功能的,只有单选的时候才会有搜索功能. Selec ...

  8. Toolbar自定义布局

    Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局.打开ToolBar源码我们发现它继承ViewGroup,这就表示我们 ...

  9. 最新WIN10系统32位和64位纯净版自动激活版1010074 V2015年

    系统来自:系统妈 本系统定位于个人在家庭.网吧.办公环境使用,采用久经考验的精简方法和体积压缩技术,在小巧体积中提供了几乎100%的原版Win10兼容性.经过在多个版本的更新和升级过程后,已经被证明能 ...

  10. CentOS 7 挂载ntfs磁盘格式的U盘

    因为CentOS 默认不识别NTFS的磁盘格式,所以我们要借助另外一个软件来挂载,那就是ntfs-3g了 自带的yum源没有这个软件,要用第三方的软件源,这里我用的是阿里的epel. 1. 切换到系统 ...