当前位置:   article > 正文

使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析

最好大学网

简介

软科中国最好大学排名2019

图1
图一

网站格式如上,我们主要爬取排名、学校名称、省市、总分4个数据。并做可视化分析。

开发环境

  1. Python 3.7
  2. PyCharm
  3. 用到的Python库
    • csv (数据存储)
    • BeautifulSoup (网页内容解析)
    • request (网页下载)
    • pandas (数据读取、分析)
    • matplotlib、pylab (画图)

爬取数据

1.获取网站页面

我们使用request库将整个网页内容下载下来。过程非常的简单。

def getHTMLText(url):
    try:
        resp = request.urlopen(url)
        html_data = resp.read().decode('utf-8')
        return html_data
    except:
        return ""
    pass
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里request.urlopen(url)返回的是一个response对象,再通过read()方法就可以获得网页的内容了。

2.解析网页内容

我们使用BeautifulSoup来解析整个的网页内容。

通过观察网页源代码的方式我们可以发现
图2
数据内容都存放在这个’tbody’元素中。
图3
不难发现网页上的每一行数据都存放在一个’tr’元素中,每个’tr’元素下的前4个’td’元素就是我们要的数据。

def fillUnivList(ulist, html):
    soup = BeautifulSoup(html, "html.parser")
    for tr in soup.find('tbody').children:  # 搜索'tbody'后面的子节点
        if isinstance(tr, bs4.element.Tag):
            tds = tr('td')
            ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string]
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/798200
推荐阅读
相关标签
  

闽ICP备14008679号