• Python采集世界大学排行榜,做数据可视化,来看看你的大学上榜没


    前言

    这不是最近疫情又开始了,马上也要过年了

    就是说很多大学都开始准备放假了吧

    我有个表妹下周二就放寒假了哈哈

    感觉现在读书寒假可长了

    今天有点无聊 就来 爬取一下世界大学排行榜,做数据可视化

    看看你们的学校上榜没

    知识点

    • 动态数据抓包
    • requests发送请求
    • 结构化+非结构化数据解析

    开发环境

    • python 3.8 运行代码
    • pycharm 2021.2 辅助敲代码
    • requests 第三方模块 pip install 模块名

    实现代码

    模块

    源码.点击领取即可

    import requests         # 发送请求 第三方模块
    import re
    import csv
    
    • 1
    • 2
    • 3
    def replace(str):
        str = re.sub('<.*?>', '', str)
        return str
    
    f = open('排名.csv',  mode='a', encoding='utf-8', newline='')
    csv_writer = csv.writer(f)
    url = 'https://www.qschina.cn/sites/default/files/qs-rankings-data/cn/2057712.txt?_=1669724480772'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1. 发送请求

    response = requests.get(url)
    
    • 1

    2. 获取数据

    # .text:  获取文本数据的
    # .json(): 获取 {}/[] 所包裹的数据 字符串类型 ==> 字典/列表  Python基础里面的数据容器
    # .content: 获取 音频/视频/图片 数据的
    json_data = response.json()
    
    • 1
    • 2
    • 3
    • 4

    3. 解析数据 提取数据

    python学习交流Q群:770699889 ### 源码领取
    data_list = json_data['data']
    for data in data_list:
        country = data['country']
        title = replace(data['title'])
        ind_0 = replace(data['ind_0'])
        ind_1 = replace(data['ind_1'])
        ind_2 = replace(data['ind_2'])
        rank_0 = data['rank_0']
        rank_d_0 = replace(data['rank_d_0'])
        rank_d_1 = replace(data['rank_d_1'])
        score = data['score']
        region = data['region']
        print(country, title, ind_0, ind_1, ind_2, rank_0, rank_d_0, rank_d_1, score, region)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4. 保存数据

    csv_writer.writerow([country, title, ind_0, ind_1, ind_2, rank_0, rank_d_0, rank_d_1, score, region])
    
    • 1

    最后

    今天的分享到这里就结束了

    顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

    Python零基础教学合集

    对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
    觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

  • 相关阅读:
    MATLAB:使用JADE解决带约束的单目标优化问题
    Redis实战案例及问题分析之秒杀功能优化(异步下单、Redis消息队列)
    力扣 -- 96. 不同的二叉搜索树
    轻松一刻|Walrus CLI与CI/CD工具集成,轻松部署2048游戏
    微信小程序轮播
    TypeScript 第二章:枚举与断言
    Linux —— 线程安全
    Oracle安装 - shmmax和shmall设置
    C++编程良好习惯
    每日简报 8月30日简报新鲜事 每天一分钟 了解新鲜事
  • 原文地址:https://blog.csdn.net/aliYz/article/details/128155059