Python爬虫,爬取2020年软科中国大学排名并进行数据清洗与可视化输出

本文使用Python爬取2020年软科中国大学排名,存储于SQL和Excel数据库,并进行数据筛选及matplotlib可视化分析,展示了如何利用SQL和matplotlib进行数据处理和图形绘制,强调了Python爬虫、数据库操作和数据可视化的实践价值。
摘要由CSDN通过智能技术生成

写在前面

使用python对【软科-高等教育评价领先品牌 https://www.shanghairanking.cn/rankings/bcur/2020】进行爬取,然后存到sql数据库中(也有excel的代码),并且进行分析,获得每个省份的大学的种类的分布图。
这个项目特别有纪念意义,因为它让我深刻认识了SQL数据库语句的魅力还有matplotlib的重要性,另外还有Echarts的强大,还有如何通过修改官方实例得到自己想要的结果,还有urllib 爬虫与BeautifulSoup 网页解析。是一个很全面的锻炼。很多的注释没有删掉,是自己编敲边试的结果。
每个省份的大学的种类的分布图

爬虫与数据存储(excel&sql)

import bs4
from bs4 import BeautifulSoup  #网页解析,获取数据
import urllib #订制url,获取网页数据
import urllib.error #请求网页如果出错的时候的分析
import urllib.request #请求网页获取
import re
import os
import requests
import time
import numpy as np
import xlwt
import sqlite3


def main():
    #1.爬取网页
    baseurl = "https://www.shanghairanking.cn/rankings/bcur/2020"
    print(baseurl)
    # ask_URL(baseurl) #自建函数,获取网页并存储为本地文本

    #2.分析数据,解析数据(边爬取边解析,逐一解析,循环语句)
    get_data(baseurl) #自建函数,获取网页的本地文本里面的有用的表单



#得到指定某一个url的网页的内容,这是最基础的函数
def ask_URL(url):
    head = {
   "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"}
    request = urllib.request.Request(url, headers=head)
    html = ""
    try:
        response = urllib.request.urlopen(request)
        html = response.read().decode("utf-8")
        print(html)
    except urllib.error.URLError as e:
        if hasattr(e, "code"):
            print(e, code)
        if hasattr(e, "reason"):
            print(e, reason)
    print("访问成功")
    return html #最后返回,网页文本

def get_data(baseurl):
    data_list = []
    # html = ask_URL(baseurl)
    html = open(r'./大学.html',"rb")
    # print(html)
    soup = BeautifulSoup(html, "html.parser")
    # print(soup)
    for item in soup.select('tr > td'):
        rx = item.get_text()
        re = rx.replace("\r\n", "")
        data_list.append(re.strip())
    print(data_list)
    print(len(data_list))
    print(data_list[0:6])
    print(data_list[0:6])
    ranking0 = []
    uname1 = []
    city2 = []
    info3 = []
    totalscore4=[]
    partscore5=[]
    ranking0.extend(data_list[0:-5:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值