#!/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')

# [

1,

清华大学

, 北京, 95.3...

# 我们通过筛选出我们需要的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_Python之爬虫-中国大学排名相关推荐

  1. 网络爬虫——中国大学排名数据抓取

    网络爬虫--中国大学排名数据抓取 目标网址 中国大学排名网:http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html 全球有很多份大学排名,这里以上 ...

  2. python中国大学排名爬虫写明详细步骤-Python之爬虫-中国大学排名

    #!/usr/bin/env python # coding: utf-8 import bs4 import requests from bs4 import BeautifulSoup # 通过传 ...

  3. python中国大学排名爬虫写明详细步骤-python网络爬虫入门实例:中国大学排名定向爬虫...

    中国大学排名定向爬虫的 设计和实现 一.环境安装: 1.选择一个适合自己的IDE(以下代码用Jupyter Notebook编写) 2.打开cmd,安装requests库和beautifulsoup4 ...

  4. python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫

    python 中国大学排名爬虫 首先,给一个最好大学网URL:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html, 点击这里进入 . 功能描述 ...

  5. python排名差怎么改,2017中国大学排名爬虫代码修改

    本文是学习http://www.icourse163.org/lea... 课程的代码实现和反思. 课程的第6单元中嵩天老师给出的"中国大学排名爬虫"优化代码如果把url中的201 ...

  6. Python爬虫入门之2022软科中国大学排名爬取保存到csv文件

    一.实验方案设计 1.获得"2022软科中国大学排名"数据,从[软科排名]2022年最新软科中国大学排名|中国最好大学排名网页中获得排名数据信息,并将数据保存到csv文件中. 2. ...

  7. Python练习-爬虫(附加爬取中国大学排名)

    Python与网页处理 Python 语言发展中有一个里程碑式的应用事件,即美国谷歌(GOOGLE)公司在搜索引擎后端采用Python 语言进行链接处理和开发,这是该语言发展成熟的重要标志.Pytho ...

  8. 中国大学排名的爬虫实战

    中国大学排名的爬虫实战(结合信息组织与提取,两种方式实现) 功能描述 输入:大学排名url链接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:requests-bs4 定向爬虫:仅对 ...

  9. 爬虫爬取中国大学排名top100并简单可视化分析

    爬虫爬取中国大学排名top100并简单可视化分析. 目标链接 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html 实践环境 pycharm201 ...

最新文章

  1. java int类源码,一起学JDK源码 -- Integer类
  2. LVS负载均衡下session共享的实现方式-持久化连接
  3. table合并单元格宽度自适应
  4. Android开发基础(四大组件及Intent)
  5. Android系统(244)---Zygote进程的启动流程
  6. tp3.2 实现增删改查
  7. centos安装python3.8.1_centos6.6下安装python3.8.1后报错??报错-问答-阿里云开发者社区-阿里云...
  8. 解决微信开发者工具无法打开的问题
  9. java弹出子窗口_java实现点击按钮事件弹出子窗口
  10. 前端入门篇(四十)JS基础7浏览器原理和BOM
  11. JPA--动态查询--Example
  12. java判断闰年中闰月_编程序:计算某年某月有多少天(区分闰年和闰月)?怎么编?...
  13. 机器人辅助符文天赋符文天赋_机器人符文天赋
  14. 关于java中JDBC读取字段属性原理
  15. 民宿运营经验分享:玩转自我营销,带动流量持续增长
  16. opencv滤波函数简介
  17. gcrobustvar:基于VAR的稳健性Granger因果检验
  18. 是否对纯色背景的IDE感到乏味?那就让vscode背景变成你想要的样子
  19. N多系统单点登录,实现、解决方案。四种解决方案
  20. 行人重识别简介(Person ReID)

热门文章

  1. 336(see). Palindrome Pairs 5.(see)
  2. Python判断字符串相等
  3. 手牵手系列之搭建Vue+Electron项目
  4. 会计做好财务分析从这6个要素开始
  5. [EOS源码分析]2.EOS账号钱包密钥等基本概念及操作实践
  6. 搭建手游平台需要了解些什么?
  7. 这些特效即将告别JavaScript,迎来CSS时代!
  8. 平板的尺寸统计用于屏幕适配
  9. 魅族android os 耗电,魅族魅蓝metal耗电快怎么办 魅蓝metal省电教程【详解】
  10. chrome快捷键扩展插件SurfingKeys