欢迎订阅公众号 数据分析那些事儿

0 前言

给定一个网页的表格,怎么将网页表格中的数据爬取下来呢?

以 最好大学网 为例,怎样定向爬取网页中大学的排名呢?

1 HTML网页元素结构

可以点开网站,查看源代码,大学排名是一个表格,网页元素结构如下:

row 1, cell 1

row 1, cell 2

row 1, cell 3
row 2, cell 1

row 2, cell 2

row 2, cell 3

复制代码

而我们要获取的就是表格种每行row x, cell x的内容。

2 BeautifulSoup库介绍

BeautifulSoup库通俗来说是解析、遍历、维护“标签树”(例如html、xml等格式的数据对象)的功能库。

得到一个BeautifulSoup对象后,一般通过BeautifulSoup类的基本元素来提取html中的内容。

基本元素

说明

Tag

标签,最基本的信息组织单元,分别用<>和>标明开头和结尾

Name

标签的名字,如

...

,用.name来获取

Attributes

标签的属性,字典形式组织,.attrs

NavigableString

标签内非属性字符串,<>...>中字符串,.string

Comment

标签内字符串的注释部分,一种特殊的Comment类型

3 编程思路

a.利用BeautifulSoup库功能,找到tbody标签

b.在tbody标签的子节点中遍历tr标签

c.在找到的tr标签中,把td的非属性字符串NavigableString的内容放入列表中

d.打印列表内容

源代码

import requests

from bs4 import BeautifulSoup

import bs4

def getHtmlText(url):

try:

r = requests.get(url, timeout = 30)

r.raise_for_status()

r.encoding = r.apparent_encoding

return r.text

except:

return ""

def getUnivList(ulist, html):

soup = BeautifulSoup(html, "html.parser")

for tr in soup.find('tbody').children:

if isinstance(tr, bs4.element.Tag):

tds = tr('td')

ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string])

def printUnivList(ulist, num):

print("{:^10}\t{:^12}\t{:^10}\t{:^10}".format("排名","学校","地区","总分"))

for i in range(num):

print("{:^10}\t{:^12}\t{:^10}\t{:^10}".format(ulist[i][0],ulist[i][1],ulist[i][2],ulist[i][3]))

if __name__ == '__main__':

url='http://www.zuihaodaxue.com/Greater_China_Ranking2019_0.html'

html = getHtmlText(url)

ulist = []

getUnivList(ulist, html)

printUnivList(ulist,30)

复制代码

运行结果

排名 学校 地区 总分

1 清华大学(北京) 大陆 100

2 北京大学 大陆 80.5

3 香港中文大学 香港 71.0

4 浙江大学 大陆 66.1

5 香港大学 香港 62.0

6 中国科学技术大学 大陆 61.4

7 上海交通大学 大陆 58.9

8 复旦大学 大陆 56.8

9 清华大学(新竹) 台湾 56.5

10 台湾大学 台湾 54.8

11 北京师范大学 大陆 53.9

12 香港城市大学 香港 50.1

13 香港科技大学 香港 49.8

14 南京大学 大陆 46.9

15 华中科技大学 大陆 44.3

16 中山大学(广州) 大陆 43.9

17 香港理工大学 香港 43.5

18 交通大学(新竹) 台湾 42.5

19 哈尔滨工业大学 大陆 42.0

20 澳门科技大学 澳门 41.9

21 中国医药大学 台湾 40.0

22 天津大学 大陆 39.8

23 西安交通大学 大陆 39.2

24 阳明大学 台湾 38.8

25 同济大学 大陆 38.5

26 东南大学 大陆 37.8

26 武汉大学 大陆 37.8

28 中国农业大学 大陆 37.6

29 四川大学 大陆 37.5

30 中南大学 大陆 36.7

python爬取中国大学排名_Python爬取中国大学排行榜相关推荐

  1. python爬虫分析大学排名_Python爬虫之爬取中国大学排名(BeautifulSoup库)

    image.png 我们需要打开网页源代码,查看此网页的信息是写在html代码中,还是由js文件动态生成的,如果是后者,那么我们目前仅仅采用requests和BeautifulSoup还很难爬取到排名 ...

  2. python中国大学排名爬虫写明详细步骤-Python爬虫--2019大学排名数据抓取

    Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结 ...

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

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

  4. 运筹说 第26期 | 2022泰晤士世界大学排名出炉!中国八校首次上榜,快看有没有你学校!

    01 泰晤士高等教育世界大学排名介绍 泰晤士高等教育世界大学排名(Times Higher Education World University Rankings),又称THE世界大学排名,是由英国& ...

  5. 计算机科学与技术专业大学排名2020,2020计算机科学与技术专业最好大学排名:160余所大学上榜...

    随着互联网社会的来临,计算机越来越广泛地深入到我们生活的方方面面.计算机相关专业也成为高考和考研的热门报考专业,每年报考的人数都在增加,尤其是适合男孩子报考. 那么对于计算机科学与技术专业来说,哪所大 ...

  6. c语言与电子信息工程大学排名,2018电子信息工程专业大学排名 最好的大学有哪些...

    热门专业的学校排名情况也是志愿填报的重要参考,小编整理了电子信息工程专业的高校排名信息,排行靠前的的学校有哪些呢?赶快来看一下吧! 电子信息工程专业的最新学校排名 在该专业的大学排行榜中,位列前三位的 ...

  7. 广州二本计算机专业大学排名及分数线,二本大学排名及分数线理科

    第1篇:二本大学排名及分数线文科理科类 全国的二本院校有很多,你知道他们的具体排名么?不知道的话,和小编一起来了解一下吧. 全国共有459所二本大学参与了2017二本大学排名理科及分数线,其中排名第一 ...

  8. 安徽省计算机科学与技术专业大学排名,计算机科学与技术专业大学排名

    计算机科学与技术专业是德国最受欢迎的专业之一,也是德国高校的优势专业之一.跟着出国留学网一起来看看2018德国计算机科学与技术专业大学排名TOP10. 一.专业概述 计算机专业涵盖软件工程专业,主要培 ...

  9. 计算机软件开发专业大学排名,2021全国自动化专业大学排名一览表

    高考填报志愿时,2021全国自动化专业大学排名情况怎样以及哪些大学比较好是广大考生以及家长朋友们十分关心的问题,目前教育部门并没有发布权威的自动化专业大学排名,但是公布了控制科学与工程学科大学排名情况 ...

  10. 计算机科学与技术专业文科大学排名,计算机科学与技术专业大学排名

    计算机科学与技术专业是德国最受欢迎的专业之一,也是德国高校的优势专业之一.跟着出国留学网一起来看看2018德国计算机科学与技术专业大学排名TOP10. 一.专业概述 计算机专业涵盖软件工程专业,主要培 ...

最新文章

  1. 2021桓台高考成绩查询,桓台中考成绩查询2021
  2. Linked list(单链表)
  3. nyoj990蚂蚁感冒
  4. (GitHub标星6.9k)超详细的人工智能专家路线图,
  5. setXxx()和getXxx()的作用
  6. android平板交互,安卓平板就应该如此,华为MatePad Pro 交互体验
  7. 红帽急了:新年的 RHEL 将有低成本或免费版
  8. 无穷大常量0x7fffffff 0x3fffffff 0x3f3f3f3f
  9. 什么是servlet?有什么作用?
  10. 用python写的,一个中英文转摩斯电码小程序
  11. 计算机键盘上删除,电脑键盘删除键是哪一个
  12. Python获取英雄联盟的皮肤原画:新手玩家们都懵了!(一)
  13. 机器学习:神经网络中的激活函数
  14. curl命令发送Post请求
  15. c语言中中文字库,读取汉字库中的汉字
  16. 机器学习 :训练集、验证集、测试集分配比例
  17. Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed
  18. 中国有多少博士,博士现在的待遇水平如何?
  19. 人机对话练习:模拟mud 游戏
  20. 电荷泵(charge pump)

热门文章

  1. 优秀开源项目之二:流媒体直播系统Open Broadcaster Software
  2. 0基础怎么自学软件测试?
  3. 【剖析 | SOFARPC 框架】之SOFARPC 线程模型剖析
  4. 低版本的iphone 无法跑在xcode8上
  5. WordPress和October
  6. C语言 投票选举问题
  7. 尚学堂JAVA基础学习笔记_1/2
  8. DownloadHelper使用教程
  9. 狂神说java-Mybatis
  10. 计算机ip如何设置,win7电脑ip地址怎么设置_win7电脑ip怎么设置-win7之家